对目录中的每个文件运行一系列命令

对目录中的每个文件运行一系列命令

要向单个文件添加字幕,我使用以下命令:

mkvmerge.exe -o g:\movie01.mkv --default-track 0 --language 0:pl movie01.mkv movie01.srt

在哪里:

movie01.mkv是视频文件的名称

movie01.srt是字幕文件的名称(它始终与视频文件相同)

g:\movie01.mkv是输出文件

如何对目录中的每个文件运行上述命令?

答案1

此命令将循环遍历所有 mkv 文件并对每个文件运行命令(我建议将其放在一个.bat文件中)。该命令应在包含 mkv 文件的目录中运行。

for %%A in (*.mkv) do if /i "%%~XA"==".mkv" ( 
    c:\<path to mkvmerge>\mkvmerge.exe -o g:\"%%A" --default-track 0 --language 0:pl "%%A" "%%~nA.srt"
)

%%A等于确切的文件名。

%%~nA等于不带文件类型的文件名。

答案2

假设所有文件都有 .mkv 扩展名,那么这样如何:

for /r %%video in (*.mkv) do mkvmerge.exe -o %%video --default-track 0 --language 0:pl %%video.srt

%%video是使用指定扩展名标识当前文件夹中每个文件的变量。do我对每个文件运行命令后,我使用相同的变量来调用 srt 文件。

相关内容