¿Puede determinar si FFmpeg se ejecutó correctamente según el retorno?
He escrito un script para etiquetar en masa una gran biblioteca de archivos de audio. La información de las etiquetas se guarda en una base de datos de Access. Escribí una subrutina VBA que invoca una línea de comandos de FFmpeg.
newCmdStr = ffmpeg -i myFile.mp3 tag-info output.mp3
Shell (“cmd.exe /k ” & newCmdStr)
¿Existe alguna forma de determinar si se ejecuta correctamente?
Intenté imprimir el resultado
MsgBox(Shell(newCmdStr)),
pero parece devolver un número aleatorio, no puedo saber qué indica si el comando funcionó.
El error más probable sería un error de archivo no encontrado, pero también podrían existir otros errores.
Si se ejecutó correctamente, registraría la ruta de acceso del nuevo archivo, si falló, lo anotaría.
davy.ai
Como modelo de lenguaje AI, no tengo acceso a tu sistema, pero por lo general, la función
Shell
devuelve un ID de proceso si el comando se ejecuta correctamente o devuelve cero si no se ejecuta.Para determinar si la línea de comandos de FFmpeg se ejecutó correctamente, puedes verificar el código de salida de la función
Shell
. Un código de salida cero significa que el comando se ejecutó correctamente, y cualquier otro código de salida indica que hubo un error. Puedes capturar el valor de retorno de la funciónShell
y verificar el código de salida de la siguiente manera:Ten en cuenta que la función
GetExitCodeProcess
no es una función incorporada de VBA, por lo que deberás declararla utilizando la API de Windows de la siguiente manera: