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?

    
posta newbie75 21.12.2016 - 23:12
fonte

2 risposte

3

Shell script / comandi in AppleScript sono gestiti con il do shell script comando , che esegue uno script di shell utilizzando sh < em> shell . Nella forma abbreviata di:

do shell script "..."

Dove ... è lo script di shell da eseguire.

Vedi Guida al linguaggio AppleScript do shell script Comandi di riferimento e Nota tecnica TN2065 do shell script in AppleScript , per ulteriori dettagli.

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

Ho testato il tuo comando , racchiuso in un do shell script comando , con l'escape necessario come mostrato nel comando sotto 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 comando do shell script utilizza la sh shell , se l'eseguibile ffmpeg non è nella PATH passato alla shell , che è /usr/bin:/bin:/usr/sbin:/sbin , dovrai includere il pathname completo per l'eseguibile ffmpeg per il tuo comando per funzionare in AppleScript .

    
risposta data 22.12.2016 - 01:07
fonte
-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 Listato 39-1AppleScript: Esecuzione di un semplice comando shell che elenca i contenuti di una directory

do shell script "ls /Applications/"
(*
--> Result:
"App Store.app
Automator.app
Calculator.app
Calendar.app
..."
*)
    
risposta data 22.12.2016 - 06:54
fonte

Leggi altre domande sui tag