Modifica dell'associazione file per un singolo file o un set di file (AppleScript)
Questo script dimostra innanzitutto che l'applicazione predefinita per alcuni file di testo sul mio sistema era impostata su TextEdit . Quindi modifica l'associazione file per quel particolare file in modo che ora si apra con Atom . Infine, associa tutti i file di testo sul desktop con l'applicazione Atom .
tell application "System Events"
get the default application of the file "/path/to/some file.txt"
--> alias "Macintosh HD:Applications:TextEdit.app:" of application "System Events"
# Individual file:
set the default application of the file "/path/to/some file.txt" to ¬
the path to the application named "Atom"
# A set of files:
set the default application of every file of the desktop folder whose ¬
name extension = "txt" to the path to the application "Atom"
end tell
Modifica delle associazioni di file per tutti i file di un determinato tipo (JXA)
Usando JavaScript per l'automazione, puoi implementare le funzioni di Core Foundation in un modo che non puoi fare con AppleScriptObjC, in modo da interagire con Avvia servizi a livello di sistema e modificare l'associazione di file per un dato file tipo.
Qui ho scelto come target file di testo normale (questi hanno estensione .txt
per impostazione predefinita) e ho cambiato l'applicazione predefinita che risponde a loro in Atom :
ObjC.import('CoreServices');
var contentType = 'public.plain-text';
var bundleID = Application('Atom').id();
$.LSSetDefaultRoleHandlerForContentType(
contentType,
$.kLSRolesAll,
bundleID
);
Il tipo di file deve essere scelto come target < em> Identificatore di tipo uniforme . Si tratta di stringhe di testo speciali che identificano in modo univoco una determinata classe o tipo di elemento. Il link ti porterà a una pagina che elenca le UTI dichiarate dal sistema di Apple per tutti i tipi di file che ti interessano. Fai attenzione a non scegliere semplicemente quello che sembra soddisfare le tue esigenze a prima vista, poiché le UTI sono strutturato in una specie di albero ereditario. Pertanto, avrei potuto scegliere pigramente public.text
, che ho visto prima nella lista, fino a quando non avremo letto più attentamente, apprendiamo che questa UTI è un tipo base per tutto il testo, che includerebbe HTML
e RTF
file.