对于 cli 批处理中的循环



我有一堆视频,我需要使用 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编辑它,因为在我的系统上执行它毫无意义。

如果没有echomkvmerge应该运行。

这是我获得的输出。

"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...

相关内容

  • 没有找到相关文章

最新更新