我经常使用以下命令:
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