对多个文件应用 MediaInfo 批次

对多个文件应用 MediaInfo 批次

我经常使用以下命令:

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

来源:在 Windows 中使用 mediainfo 获取字幕列表

但是我想对文件夹中的所有文件运行相同的命令。

我努力了

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

但它似乎不起作用,我不知道为什么。

答案1

在您的测试代码中,我没有在 MediaInfo 调用中看到“%%a”(要使用的文件名),也没有在 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

相关内容