Pase una variable (ruta de carpeta) a AppleScript en Automator

4

Estoy tratando de pasar una variable que se ha establecido en Automator a un AppleScript dentro de Automator. El flujo de trabajo de Mi Automator es el siguiente:

Preguntar por elementos del buscador (solo se permite el tipo de carpeta)

Establecer valor de variable (variable configurada en "carpeta seleccionada")

Obtener valor de variable (carpeta seleccionada)

Ejecutar AppleScript

property odd : true -- set to false to get odd numbers

on run {input, parameters}

set thefolder to (input as text)

set TheNumber to (odd as integer)
tell application "Finder"
    set FileList to every file of thefolder
    repeat with oneFile in FileList
        set Ex to name extension of oneFile
        set NameString to text -4 thru -1 of ("000" & TheNumber) & "." & Ex
        set name of oneFile to NameString
        set TheNumber to TheNumber + 2
    end repeat
end tell

return input
end run

Esto devuelve el error:

Can’t get every file of "Macintosh SSD:Users:etc....

¿Alguien tiene alguna sugerencia sobre por qué la carpeta elegida en automator no puede ser aceptada en el AppleScript?

Nota: entiendo que solo puedo usar "elegir carpeta" en AppleScript en lugar de usar los elementos del flujo de trabajo del Automator, pero truncé mi flujo de trabajo real solo para mostrar esta parte. La variable es necesaria en otros lugares del flujo de trabajo de Automator, además de pasarla a AppleScript.

    
pregunta Darbis 03.04.2017 - 09:46

1 respuesta

1

Cuando use on run {input, parameters} , input es una lista , y como tal, necesita cambiar la siguiente línea de su código :

set thefolder to (input as text)

Para:

set thefolder to (item 1 of input)

Eso solucionará el error Can’t get every file of ... .

Además, aunque no especificó la configuración completa de la Obtener valor de la variable acción , asumiré que en Opciones , ha marcado la casilla de verificación [√] Ignorar la entrada de esta acción para desvincularla de la acción anterior Establecer valor de variable . De lo contrario, pasa la variable dos veces a la Ejecutar AppleScript acción . Es decir, en este ejemplo flujo de trabajo que ha presentado.

    
respondido por el user3439894 03.04.2017 - 17:22

Lea otras preguntas en las etiquetas