5 votes

Transmettre une variable (chemin d'accès à un dossier) à AppleScript dans Automator

J'essaie de passer une variable qui a été définie dans Automator à un AppleScript dans Automator. Mon flux de travail Automator est le suivant :

Demander des éléments du Finder (n'autoriser que le type de dossier)

Fixer la valeur de la variable (variable fixée à "dossier choisi")

Obtenir la valeur de la variable (dossier choisi)

Exécuter 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

L'erreur est renvoyée :

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

Quelqu'un a-t-il des suggestions pour expliquer pourquoi le dossier choisi dans Automator ne peut pas être accepté dans l'AppleScript ?

Note : Je comprends que je peux simplement utiliser "choisir un dossier" dans l'AppleScript au lieu d'utiliser les éléments du flux de travail d'Automator, mais j'ai tronqué mon flux de travail réel juste pour montrer cette partie. La variable est nécessaire ailleurs dans le flux de travail Automator, en plus de la transmettre à l'AppleScript.

5voto

user3439894 Points 52496

Lors de l'utilisation de on run {input, parameters} , input est un liste et vous devez donc modifier la ligne suivante de votre fichier code :

set thefolder to (input as text)

A :

set thefolder to (item 1 of input)

Cela résoudra le problème de la Can’t get every file of ... erreur.

En outre, bien que vous n'ayez pas indiqué les paramètres complets de la Obtenir la valeur d'une variable action Je suppose que sous Options vous avez vérifié le [Ignorer les données de cette action pour le dissocier de l'élément précédent Définir la valeur de la variable action . Dans le cas contraire, il transmet le variable deux fois au Exécuter AppleScript action ! En d'autres termes, dans cet exemple flux de travail que vous avez présentée.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X