1 votos

¿Cómo puedo hacer que Automator sólo realice una operación en un archivo a la vez?

Tengo con 'Folder Action' que ejecuta automáticamente un script de Photoshop en cada archivo que se añade a la carpeta.

La acción de la carpeta tiene dos pasos:

  1. Abra este archivo con Adobe Photoshop CC

  2. Ejecute el siguiente AppleScript:

    on run {input, parameters}
    
        tell application "Adobe Photoshop CC"
            do action "frame for print" from "Zak's actions"
        end tell
    
        return input
    end run

Esta acción de carpeta funciona bien cuando sólo se añade un elemento a la carpeta a la vez, pero si se añaden varios elementos, la acción de carpeta se dispara en cada uno de los nuevos archivos casi instantáneamente por lo que todos se abren en Photoshop, pero la acción de Photoshop sólo se ejecuta en el archivo abierto más recientemente. (Supongo que esto se debe a que cada vez que se inicia la acción de Photoshop se detiene la ejecución de la instancia anterior)

Intenté añadir una pausa después del AppleScript con la esperanza de que Automator pensara que la acción de la carpeta se realizaba después de que el AppleScript se disparara sin esperar a que terminara, pero incluso con la pausa la acción de la carpeta se activaba para todos los archivos nuevos al mismo tiempo.

¿Existe una forma de asegurar que mi acción de carpeta sólo se ejecute en un archivo a la vez y espere a que el AppleScript se ejecute antes de pasar al siguiente archivo?

1 votos

Subir un voto y aceptar una respuesta es una forma educada de mostrar tu agradecimiento por todo el esfuerzo que ha hecho el autor para darte la respuesta correcta. Si la respuesta es la que buscabas, acéptala; si no, explica por qué.

1voto

CousinCocaine Puntos 3615

Puedes hacer esto de varias maneras, una es usar applescript para hacer un bucle 'for each'.

Toma este fragmento de código applescript como ejemplo y trabaja a partir de ahí.

on adding folder items to this_folder after receiving these_items
   repeat with an_item in these_items
       tell application "Adobe Photoshop CC"
           activate
           open an_item
           do action "frame for print" from "Zak's actions"
       end tell
   end repeat
end adding folder items to

0 votos

Si ejecuto esto desde Automator, ¿ejecutará de nuevo el bucle para cada elemento que se haya añadido? ¿O después de la primera vez "sabrá" que los elementos no se consideran nuevos después de la primera vez que se complete el bucle?

0 votos

Ejecutará la acción en cada elemento de la carpeta, que es para lo que sirve una acción de carpeta ( developer.apple.com/library/mac/documentation/applescript/ ). Puede mover los archivos fuera de la carpeta o darles etiquetas y seleccionar los archivos en su a-script que aún no tienen una etiqueta.

0 votos

@Zak ...¿funcionó?

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