我有一堆视频,我需要使用 cmd 使用 MKVtoolnix 批量复用。为此,我正在使用这个cmd。我不知道如何在循环中运行此cmd。
这是 cmd:
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output ^"E:OutputVideo - 001.mkv^" --language 0:mul --track-name ^"0:Video - 001^" --display-dimensions 0:768x576 --language 1:hi --track-name ^"1:Video - 001^" --language 2:ta --track-name ^"2:Video - 001^" --default-track-flag 2:yes --language 3:te --track-name ^"3:Video - 001^" ^"^(^" ^"E:BatchVideo - 001.mkv^" ^"^)^" --attachment-name cover_small.jpg --attachment-mime-type image/jpeg --attach-file ^"E:covercover_small.jpg^" --attachment-name cover.jpg --attachment-mime-type image/jpeg --attach-file ^"E:covercover.jpg^" --attachment-name cover_land.jpg --attachment-mime-type image/jpeg --attach-file ^"E:covercover_land.jpg^" --title ^"Video - 001^" --track-order 0:0,0:2,0:3,0:1
截至目前,我正在这样做
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output ^"E:OutputVideo - 001.mkv^" --language 0:mul --track-name ^"0:Video - 001^" --display-dimensions 0:768x576 --language 1:hi --track-name ^"1:Video - 001^" --language 2:ta --track-name ^"2:Video - 001^" --default-track-flag 2:yes --language 3:te --track-name ^"3:Video - 001^" ^"^(^" ^"E:BatchVideo - 001.mkv^" ^"^)^" --attachment-name cover_small.jpg --attachment-mime-type image/jpeg --attach-file ^"E:covercover_small.jpg^" --attachment-name cover.jpg --attachment-mime-type image/jpeg --attach-file ^"E:covercover.jpg^" --attachment-name cover_land.jpg --attachment-mime-type image/jpeg --attach-file ^"E:covercover_land.jpg^" --title ^"Video - 001^" --track-order 0:0,0:2,0:3,0:1
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output ^"E:OutputVideo - 002.mkv^" --language 0:mul --track-name ^"0:Video - 002^" --display-dimensions 0:768x576 --language 1:hi --track-name ^"1:Video - 002^" --language 2:ta --track-name ^"2:Video - 002^" --default-track-flag 2:yes --language 3:te --track-name ^"3:Video - 002^" ^"^(^" ^"E:BatchVideo - 002.mkv^" ^"^)^" --attachment-name cover_small.jpg --attachment-mime-type image/jpeg --attach-file ^"E:covercover_small.jpg^" --attachment-name cover.jpg --attachment-mime-type image/jpeg --attach-file ^"E:covercover.jpg^" --attachment-name cover_land.jpg --attachment-mime-type image/jpeg --attach-file ^"E:covercover_land.jpg^" --title ^"Video - 002^" --track-order 0:0,0:2,0:3,0:1
.....等
我需要循环运行此命令 n 次
set /a serial=1000
:again
set /a serial+=1
"C:Program FilesMKVToolNixmkvmerge.exe" ...
if %serial% leq 1234 goto again
然后将mkvmerge.exe
行中的每个001
替换为%serial:~-3%
然后使用序列号的最后 3 位数字执行mkvmerge.exe
。
循环将执行 234 次,1234
设置为限制,001
..234
.
这是我创建的实际测试文件
@ECHO OFF
SETLOCAL
set /a serial=1000
:again
set /a serial+=1
ECHO "C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output ^"E:OutputVideo - %serial:~-3%.mkv^"
if %serial% leq 1010 goto again
ECHO done...
GOTO :EOF
前两行只是抑制命令回显并建立本地环境,以便在批处理终止时放弃更改。
我截断了mkvmerge
行,因为其余部分应该更相同,并且echo
编辑它,因为在我的系统上执行它毫无意义。
如果没有echo
,mkvmerge
应该运行。
这是我获得的输出。
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 001.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 002.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 003.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 004.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 005.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 006.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 007.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 008.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 009.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 010.mkv"
"C:Program FilesMKVToolNixmkvmerge.exe" --ui-language en --output "E:OutputVideo - 011.mkv"
done...