Lo primero que veo mal en su código es tell application Finder
, ya que Finder
en este caso es una variable , ya que no tiene doble cita. Debería ser: tell application "Finder"
Dicho esto, tienes como etiquetas, macos , mac , applescript y automator y no se indica en el OP dónde y cómo ha aplicado el código a la carpeta de destino , this_folder
, como una Acción de carpeta . En otras palabras, si ha creado la Acción de carpeta en Automator y solo tiene ese código como el código en una acción Ejecutar AppleScript , incluso con las comillas dobles alrededor de Finder , fallará. Esa estructura de codificación solo es válida como un AppleScript .scpt archivo asignado a una Acción de carpeta usando Configuración de acciones de carpeta ... en la sección Servicios del menú de contactos en Finder .
El siguiente código de ejemplo es cómo lo escribiría como AppleScript .scpt archivo asignado a una Acción de carpeta usando Configuración de acciones de carpeta ... en la sección Servicios del menú de contacto en 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
Tenga en cuenta que aunque al utilizar la declaración try
, debería cometer cualquier error, sin embargo, también he agregado una declaración if
para asegurarse El elemento sobre el que se actúa es una carpeta , no un archivo . Tenga en cuenta que si bien la declaración if
no es absolutamente necesaria, no obstante, es una forma más adecuada de escribir código en mi opinión, sin embargo, podría omitirse si < em> que quieras.
AppleScript .scpt archivos del usuario para Acciones de carpeta deben guardarse, por ejemplo:
/Users/me/Library/Scripts/Folder Action Scripts/filename.scpt
Si está creando la Acción de carpeta a través de Automator , en la acción Ejecutar AppleScript use la siguiente ejemplo código_:
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
Tenga en cuenta que he probado ambos bloques de código de ejemplo en las condiciones indicadas anteriormente y funciona como se codificó.