Passa una variabile (percorso cartella) ad AppleScript in Automator

4

Sto provando a passare una variabile che è stata impostata in Automator su un AppleScript all'interno di Automator. Il flusso di lavoro del mio Automator è il seguente:

Chiedi elementi del Finder (ammesso solo il tipo di cartella)

Imposta il valore della variabile (variabile impostata su "selectedfolder")

Ottieni il valore della variabile (cartella selezionata)

Esegui 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

Questo restituisce l'errore:

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

Qualcuno ha qualche suggerimento sul motivo per cui la cartella scelta in Automator non può essere accettata in AppleScript?

Nota: ho capito che posso semplicemente usare "scegli cartella" in AppleScript invece di utilizzare gli elementi del flusso di lavoro di Automator, ma ho troncato il mio flusso di lavoro effettivo solo per mostrare questa porzione. La variabile è necessaria altrove nel flusso di lavoro di Automator oltre a passarla all'AppleScript.

    
posta Darbis 03.04.2017 - 09:46
fonte

1 risposta

1

Quando usi on run {input, parameters} , input è un elenco e, come tale, devi modificare la seguente riga del tuo codice :

set thefolder to (input as text)

A:

set thefolder to (item 1 of input)

Questo risolverà l'errore Can’t get every file of ... .

Inoltre, anche se non hai indicato le impostazioni complete dell'azione Ottieni valore della variabile , presumo che in Opzioni , hai selezionato la casella di controllo [√] Ignora questa azione di input per scollegarla dalla precedente Imposta valore della variabile azione . Altrimenti, passa la variabile due volte all'azione Esegui AppleScript ! Cioè, in questo esempio flusso di lavoro che hai presentato.

    
risposta data 03.04.2017 - 17:22
fonte

Leggi altre domande sui tag