Passar uma variável (caminho da pasta) para AppleScript no Automator


4

Eu estou tentando passar uma variável que foi definida no Automator para um AppleScript no Automator. Meu fluxo de trabalho do Automator é o seguinte:

Solicite Itens do Finder (somente permitindo o tipo de pasta)

Definir valor da variável (variável definida como "chosenfolder")

Obter valor da variável (pasta escolhida)

Executar o 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

Isso retorna o erro:

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

Alguém tem alguma sugestão sobre o motivo pelo qual a pasta escolhida no automator não pode ser aceita no AppleScript?

Nota: Eu entendo que posso usar apenas "escolher pasta" no AppleScript em vez de usar os itens do fluxo de trabalho do Automator, mas truncei meu fluxo de trabalho real apenas para mostrar essa parte. A variável é necessária em outro lugar no fluxo de trabalho do Automator, além de transmiti-la ao AppleScript.

Respostas:


1

Ao usar on run {input, parameters}, input é um Lista e, como tal, você precisa alterar a seguinte linha do seu código :

set thefolder to (input as text)

Para:

set thefolder to (item 1 of input)

Isso consertará o Can’t get every file of ... erro.

Além disso, enquanto você não indicou as configurações completas do Obtenha o valor da variável açao , Vou supor que sob Opções , você verificou o [√] Ignore a entrada desta ação caixa de seleção para desvinculá-lo do anterior Definir valor da variável açao . Caso contrário, passa o variável duas vezes para o Executar o AppleScript açao ! Isto é, neste exemplo fluxo de trabalho você apresentou.


Sua resposta também funcionaria aqui? apple.stackexchange.com/questions/146988/…
bmike

@bike, Sem testes, não posso dizer, já que não precisei executar o AppleScript e o Automator em uma máquina remota, e não posso testá-lo até amanhã. Esse segmento está acontecendo há 3 anos, então eu acho que é seguro esperar até amanhã para descobrir.
user3439894
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.