1

Я часто использую следующую команду:

MediaInfo.exe "--Output=Text;%ID%: %Format%$if(%Language/String%, SUBTiTLE: .............. %Language/String%)\r\n" File.mkv

Это выведет потоки субтитров из видео в формате:

5: UTF-8
6: VobSub SUBTiTLE: .............. French
7: VobSub SUBTiTLE: .............. English
8: VobSub SUBTiTLE: .............. French

Источник: Получить список субтитров, используя mediainfo в Windows

Однако я хотел бы запустить одну и ту же команду для всех файлов в папке.

я пытался

for %%a in (%*) do  (
MediaInfo.exe "--Output=Text;%ID%: %Format%$if(%Language/String%, SUBTiTLE: .............. %Language/String%)\r\n"
)

но это не похоже на работу, и я не уверен, почему.

1 ответ1

0

В вашем тестовом коде я не вижу "%% a" (имя файла для использования) в вызове MediaInfo, а также не вижу экранированного "%" ("%%") в параметрах MediaInfo (без экранирования в процентах) , MediaInfo получает пустые строки из-за "%", преобразованного пакетным процессором).

Я успешно сделал то, что вы пытаетесь сделать с:

>dir test
06/09/2017  14:02         2 869 248 MOV001 - Copy.MOD
06/09/2017  14:02         2 869 248 MOV001.MOD

>more a.bat
@echo off
for %%f in (%*) do (
MediaInfo.exe "--Output=General;%%FileName%%, %%Format%%" "%%f"
)

>MediaInfo.exe "--Output=General;%FileName%, %Format%\r\n" test\*
MOV001 - Copy, MPEG-PS
MOV001, MPEG-PS

a.bat test\*.*
MOV001 - Copy, MPEG-PS
MOV001, MPEG-PS

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .