línea de comando en AppleScript

2

Quiero crear una aplicación AppleScript con este comando que funciona perfectamente (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

pero obtengo errores con la variable "$ f".

¿Cómo puedo lanzarlo a través de AppleScript?

    
pregunta newbie75 21.12.2016 - 23:12

2 respuestas

3

Los scripts / comandos del shell en AppleScript se manejan con el comando do shell script , que ejecuta un script de shell utilizando el sh < em> shell . En la forma corta de:

do shell script "..."

Donde ... es el script de shell para ejecutar.

Consulte Guía de lenguaje AppleScript do shell script Referencia de comandos y Nota técnica TN2065 do shell script en AppleScript , para detalles adicionales.

Lo que debes hacer es escapar de las comillas dobles con una barra invertida, por ejemplo. \"$f\" y en otros lugares según sea necesario.

He probado su comando , envuelto en un do shell script comando , con el escape necesario como se muestra en el comando a continuación y funcionó sin problema.

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: Debido a que el comando do shell script utiliza el shell sh , si el ejecutable ffmpeg no está en el PATH pasado a shell , que es /usr/bin:/bin:/usr/sbin:/sbin , deberá incluir la ruta de acceso completa al ffmpeg ejecutable para que su comando funcione en AppleScript .

    
respondido por el user3439894 22.12.2016 - 01:07
-1

El parámetro directo del comando do shell script es una cadena que contiene el código de shell que desea ejecutar, como se muestra en el Listado 39-1, que simplemente lista un directorio.

APPLESCRIPT

Abrir en Script Editor Listado 39-1AppScript: ejecutar un comando de shell simple que enumera los contenidos de un directorio

do shell script "ls /Applications/"
(*
--> Result:
"App Store.app
Automator.app
Calculator.app
Calendar.app
..."
*)
    
respondido por el ziyapathan 22.12.2016 - 06:54

Lea otras preguntas en las etiquetas