2 votos

Línea de comandos en AppleScript

Quiero crear una aplicación de AppleScript con este comando (bash) que funciona perfectamente:

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?

0 votos

¡Bienvenido a AskDifferent! Considera reescribir tu pregunta para que se centre en un solo tema: actualmente tienes dos - cómo ejecutar un comando bash en AppleScript y un problema con la expansión de la variable f. ¿Qué error estás obteniendo y qué te gustaría saber específicamente?

3voto

user3439894 Puntos 5883

Los scripts/commands de Shell en AppleScript se manejan con el do shell script command, el cual ejecuta un shell script usando el sh shell. En su forma corta:

do shell script "..."

Donde ... es el shell script que se desea ejecutar.

Consulte la Guía de Lenguaje de AppleScript Referencia de Comandos do shell script y la Nota Técnica TN2065 do shell script en AppleScript, para más detalles.

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

He probado tu command, envuelta en un do shell script command, con el escaping necesario como se muestra en el command abajo y funcionó sin problemas.

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 do shell script command usa el sh shell, si el ejecutable ffmpeg no está en la PATH pasada al shell, que es /usr/bin:/bin:/usr/sbin:/sbin, necesitarás incluir la ruta completa al ejecutable ffmpeg para que tu command funcione en AppleScript.

-1voto

ziyapathan Puntos 1

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

APPLESCRIPT

Abrir en Script Editor Listado 39-1AppleScript: Ejecutando un comando shell simple que lista el contenido de un directorio

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X