Во-первых, я искал googled и googled, как исправить эту проблему, не повезло. Я работаю над созданием пакетного файла для повторного кодирования звука в файле в aac, если это ac-3 или ogg, используя ffmpeg. Я знаю, как сделать преобразование с помощью ffmpeg, а не как автоматизировать его, только если звук соответствует определенному кодеку. Чтобы получить аудиокодек для файла, у меня есть два разных метода: один с ffprobe, а другой с MediaInfo.Как установить вывод команды как переменную в пакете
MediaInfo --Inform="Audio;%%Format%%" "input.mkv"
или
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "input.mkv"
Однако мой вопрос с установкой переменной из вывода команды. Это код, который я пытался, но безрезультатно.
SETLOCAL
for %%a in (*.mp4) do (
MediaInfo --Inform="Audio;%%Format%%" "%%a">codec.txt
SET /p codec=<codec.txt
DEL codec.txt
ECHO %codec%
)
pause
Очевидно, что это лишь часть моей цели, но это часть я не могу показаться, чтобы получить прошлое. Я проверил, удалив часть «DEL codec.txt», которая фактически хранит правильный вывод в текстовом файле, но не импортирует его в переменную. В любом случае, я могу настроить вывод на переменную в порядке, это именно то, что я часто нашел в моем поиске.
Любая помощь очень ценится.
Возможный дубликат [команды пакетной команды для переменной окружения, заданной для цикла) (http://stackoverflow.com/questions/17598638/windows-batch-command-for-loop-set-environment-variable) –
Возможный дубликат [ Batch - Assign Command output to Variable] (http://stackoverflow.com/questions/16203629/batch-assign-command-output-to-variable); также связанные: [Batch - Assign Command output с переменными переменными] (http://stackoverflow.com/questions/28663803/batch-assign-command-output-with-variables-to-variable) – aschipfl