2 votes

ligne de commande en AppleScript

Je veux créer une application AppleScript avec cette commande (bash) qui fonctionne parfaitement :

cd /Volumes/MEDIAS/WORK/CONVERSION_VIDEO/PROXY_720P/INPUT/; for f in *.mov *.mp4; do ffmpeg -i "$f" -vcodec prores -profile:v 0 -s 1280x720 /Volumes/MEDIAS/WORK/CONVERSION_VIDEO/PROXY_720P/OUTPUT/"${f%.*}_PROXY_720P.mov" && rm "$f"; done

mais j'obtiens des erreurs avec la variable "$f".

Comment puis-je le lancer via AppleScript ?

3voto

user3439894 Points 52496

Shell scripts/commandes dans AppleScript sont traitées avec la fonction do shell script commande qui exécute un shell script en utilisant le sh coquille . Dans la forme courte de :

do shell script "..."

... est le shell script à exécuter.

Voir Guide du langage AppleScript do shell script Référence des commandes y Note technique TN2065 do shell script dans AppleScript pour plus de détails.

Ce que vous devez faire, c'est échapper aux guillemets doubles avec une barre oblique inverse, par ex. \"$f\" et ailleurs, si nécessaire.

J'ai testé votre commande enveloppé dans un do shell script commande avec l'échappement nécessaire, comme indiqué dans l'exemple ci-dessous. commande ci-dessous et cela a fonctionné sans problème.

do shell script "cd /Volumes/MEDIAS/WORK/CONVERSION_VIDEO/PROXY_720P/INPUT/; for f in *.mov *.mp4; do ffmpeg -i \"$f\" -vcodec prores -profile:v 0 -s 1280x720 /Volumes/MEDIAS/WORK/CONVERSION_VIDEO/PROXY_720P/OUTPUT/\"${f%.*}_PROXY_720P.mov\" && rm \"$f\"; done"

Nota: Parce que le do shell script commande utilise le sh coquille si le ffmpeg n'est pas dans le répertoire PATH transmis à la coquille qui est /usr/bin:/bin:/usr/sbin:/sbin vous devrez inclure le chemin d'accès complet à l'application ffmpeg exécutable pour votre commande pour travailler en AppleScript.

-1voto

ziyapathan Points 1

Le paramètre direct de la commande do shell script est une chaîne contenant le code shell que vous souhaitez exécuter, comme le montre le Listing 39-1, qui liste simplement un répertoire.

APPLESCRIPT

Ouvrir dans l'éditeur de script Listing 39-1AppleScript : Exécution d'une commande shell simple qui liste le contenu d'un répertoire.

do shell script "ls /Applications/"
(*
--> Result:
"App Store.app
Automator.app
Calculator.app
Calendar.app
..."
*)

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