La prima cosa che vedo male nel tuo codice è tell application Finder
, in quanto Finder
in questo caso è una variabile , poiché non è doppia citazione. Dovrebbe essere: tell application "Finder"
Detto questo, hai come tag, macos , mac , applescript e automator e non hai specificato nell'OP dove e come hai applicato il codice alla cartella di destinazione , this_folder
, come Azione cartella . In altre parole, se hai creato Azione cartella in Automator e hai appena quel codice come code in un Esegui AppleScript azione , anche con le virgolette attorno a Finder , fallirà. La struttura di codifica è valida solo come file AppleScript .scpt assegnato a Azione cartella utilizzando Impostazione azioni cartella ... nella sezione Servizi del menu di contatto in Finder .
Il seguente codice di esempio è come lo scriverei come un AppleScript .scpt file assegnato a Azione cartella utilizzando Impostazione azioni cartella ... nella sezione Servizi del menu di contatto in Finder .
on adding folder items to this_folder after receiving added_items
try
tell application "Finder"
repeat with this_item in added_items
if (class in (get properties of this_item) as string) is "«class cfol»" then
make new folder at this_item with properties {name:"Main"}
make new folder at this_item with properties {name:"Lower"}
make new folder at this_item with properties {name:"Upper"}
end if
end repeat
end tell
end try
end adding folder items to
Si noti che anche se si utilizza l'istruzione try
, dovrebbe mangiare qualsiasi errore, tuttavia, ho anche aggiunto una dichiarazione% em_de% per assicurarmi la voce su cui si agisce è una cartella , non un file . Nota che anche se la if
istruzione non è assolutamente necessaria, è comunque un modo più corretto di scrivere code a mio avviso, tuttavia, potrebbe essere escluso se < em> tu vuoi.
I file AppleScript .scpt dell'utente per Azioni cartella devono essere salvati in, ad esempio:
/Users/me/Library/Scripts/Folder Action Scripts/filename.scpt
Se stai creando l'azione Cartella tramite Automator , nell'azione Esegui AppleScript usa il seguente esempio codice _:
on run {input, parameters}
try
tell application "Finder"
repeat with this_item in input
if (class in (get properties of this_item) as string) is "folder" then
make new folder at this_item with properties {name:"Main"}
make new folder at this_item with properties {name:"Lower"}
make new folder at this_item with properties {name:"Upper"}
end if
end repeat
end tell
end try
end run
Nota che ho provato entrambi i blocchi di codice di esempio nelle condizioni sopra indicate e funziona come codificato.