目录中包含2个或更多视频文件,文件名可以是任意的。
video1.mkv
video2.mkv
需要找出每个视频的持续时间。为此,我们使用MediaInfo。
setlocal EnableDelayedExpansion
for %%a in (*.mkv) do (
for /f "usebackq" %%a in (`"mediainfo --Inform=Video;%%Duration%% %%a"`) do set duration=%%a
echo "!duration!" > "data.txt"
)
问题是,它只打印1个值/持续时间(我认为是最后一个文件)。它可以工作,但仅适用于一个文件。
如何使其适用于目录中的所有文件?
for
替换为%%b
,但没有变化。 - user3108268for /f "usebackq" %%b in (
"mediainfo --Inform=Video;%%Duration%% %%a") do echo %%a %%b>>"filename"
其中,%%a
表示文件名,%%b
表示mediainfo返回的时长,因此不需要进行中间赋值给duration
。 - Magoo