riga di comando in AppleScript


2

Voglio creare un'app AppleScript con questo comando perfettamente funzionante (bash):

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

ma ottengo errori con la variabile "$ f".

Come posso avviarlo tramite AppleScript?


Benvenuti in AskDifferent! Considera di riscrivere la tua domanda in modo che si attacchi a un argomento - in questo momento ne hai due - come eseguire un comando bash in AppleScript e un problema con l'espansione variabile di f. Quale errore stai ricevendo e cosa vorresti sapere in particolare?
Allan,

Risposte:


3

Gli script / comandi della shell in AppleScript sono gestiti con il do shell script comando , che esegue uno script della sh shell usando la shell . Nella forma abbreviata di:

do shell script "..."

Dov'è ...lo script della shell da eseguire.

Per ulteriori dettagli, consultare la Guida di do shell scriptriferimento ai comandi e la nota tecnica della do shell scriptguida linguistica AppleScript TN2065 in AppleScript .

Quello che devi fare è sfuggire alle doppie virgolette con una barra rovesciata, ad esempio \"$f\"e altrove, se necessario.

Ho testato il tuo comando , racchiuso in un do shell script comando , con l'escaping necessario come mostrato nel comando seguente e ha funzionato senza problemi.

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: poiché il do shell script comando utilizza la sh shell , se l' ffmpegeseguibile non è PATHpassato alla shell , ovvero è /usr/bin:/bin:/usr/sbin:/sbinnecessario includere il nome completo ffmpegdell'eseguibile affinché il comando funzioni in AppleScript.


-1

Il parametro diretto del comando do shell script è una stringa contenente il codice shell che si desidera eseguire, come dimostrato nel Listato 39-1, che elenca semplicemente una directory.

Applescript

Apri in Script Editor Elenco 39-1 AppleScript: esecuzione di un semplice comando shell che elenca il contenuto di una directory

do shell script "ls /Applications/"
(*
--> Result:
"App Store.app
Automator.app
Calculator.app
Calendar.app
..."
*)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.