1 votos

Al crear una carpeta en una carpeta especificada, se crean subcarpetas en la nueva carpeta

Soy nuevo en AppleScript y Automator. He explorado los diferentes hilos en Apple pero no he podido encontrar algo útil.

Bueno, mi problema es que tengo una carpeta, es decir, "trabajo" y he aplicado la acción de carpeta en ella. Al crear una nueva carpeta en "trabajo", es decir, "abc", quiero crear tres nuevas carpetas en "abc". Mira mi código

on adding folder items to this_folder after receiving added_items
  tell application Finder
    repeat with this_item in added_items
        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 repeat
  end tell
end adding folder items to

1voto

user3439894 Puntos 5883

Lo primero que veo mal en su código es tell application Finder , como Finder en este caso es un variable ya que no está entre comillas. Debería serlo: tell application "Finder"

Dicho esto, tienes como Etiquetas, MacOS , mac , applescript y automatizador y no ha indicado en el PO dónde y cómo ha aplicado el código a la carpeta de destino , this_folder como Carpeta Acción . En otras palabras, si ha creado el Carpeta Acción en Automatizador y tener justo eso código como el código en un Ejecutar AppleScript acción incluso con las comillas dobles alrededor de Buscador fallará. Esa estructura de codificación sólo es válida como AppleScript .scpt archivo asignado a un Carpeta Acción utilizando Configuración de las acciones de la carpeta... en el Servicios sección del menú de contacto en Buscador .

Lo siguiente código de ejemplo es como lo escribiría como un AppleScript .scpt archivo asignado a un Carpeta Acción utilizando Configuración de las acciones de la carpeta... en el Servicios sección del menú de contacto en Buscador .

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 el try declaración debería comerse cualquier error, no obstante, también he añadido un if declaración para asegurarse de que el artículo que se actúe es un carpeta no un archivo . Tenga en cuenta que mientras el if declaración no es absolutamente necesario, sin embargo, es una forma más adecuada de escribir código en mi opinión, sin embargo, podría quedar fuera si usted quiere.

Usuario AppleScript .scpt archivos para Acciones de la carpeta debe guardarse, por ejemplo, en

/Users/me/Library/Scripts/Folder Action Scripts/filename.scpt

Si está creando el Carpeta Acción a través de Automatizador , entonces en el Ejecutar AppleScript acción utilice lo 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 bajo las condiciones indicadas anteriormente y funciona tal y como está codificado.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X