批处理命令以按顺序将多个视频和字幕文件混合到不同的文件名


1

在Windows 10上,有什么简单的命令可以使用ffmpeg将多个视频和字幕文件按顺序多路复用到不同的顺序文件名?我在手动做

    ffmpeg -i "moviename part 1.mp4" -i "moviename part 1.srt" -c copy "temp01.mkv"
    ffmpeg -i "moviename part 2.mp4" -i "moviename part 2.srt" -c copy "temp02.mkv"
    ffmpeg -i "moviename part 3.mp4" -i "moviename part 3.srt" -c copy "temp03.mkv"
    ffmpeg -i "moviename part 4.mp4" -i "moviename part 4.srt" -c copy "temp04.mkv"
    ffmpeg -i "moviename part 5.mp4" -i "moviename part 5.srt" -c copy "temp05.mkv"
    ffmpeg -i "moviename part 6.mp4" -i "moviename part 6.srt" -c copy "temp06.mkv"
    ffmpeg -i "moviename part 7.mp4" -i "moviename part 7.srt" -c copy "temp07.mkv"
    ffmpeg -i "moviename part 8.mp4" -i "moviename part 8.srt" -c copy "temp08.mkv"
    ffmpeg -i "moviename part 9.mp4" -i "moviename part 9.srt" -c copy "temp09.mkv"
    ffmpeg -i "moviename part 10.mp4" -i "moviename part 10.srt" -c copy "temp10.mkv"
    ffmpeg -i "moviename part 11.mp4" -i "moviename part 11.srt" -c copy "temp11.mkv"
    .
    .
    .
    ffmpeg -i "moviename part 99.mp4" -i "moviename part 99.srt" -c copy "temp99.mkv"

现在,但是很累。我发现此命令将文件混合

for %%a in ("*.mp4") do ffmpeg -i "%%~na.mp4" -i "%%~na.srt" -c copy "%%~na.mkv"

但是它输出相同的文件名moviename部分1.mkvmoviename部分2.mkvmoviename部分3.mkv等等,而不是像我想要的temp01.mkvtemp02.mkvtemp03.mkv等。

Answers:


1

依次多路复用多个视频和字幕文件的简单命令是什么?

用途for /l

@echo off
setlocal enabledelayedexpansion
for /l %%a in (1,1,99) do (
  set _count=00%%a
  ffmpeg -i "moviename part %%a.mp4" -i "moviename part %%a.srt" -c copy "temp!_count:~-2!.mkv"
)
endlocal

进一步阅读

  • Windows CMD命令行的AZ索引 -Windows cmd行相关的所有内容的出色参考。
  • enabledelayedexpansion-延迟扩展将导致变量在执行时而不是在解析时进行扩展。
  • / l-有条件地执行一系列数字的命令。
  • set-显示,设置或删除CMD环境变量。使用SET所做的更改将仅在当前CMD会话期间保持不变。
  • 变量 -提取变量的一部分(子字符串)。

我遇到了“ for”命令弄乱文件顺序的问题。它先处理第1、10、11等部分,然后处理第2、2、20、21等部分,而不是升序处理。然后该命令运行到temp08.mkv,然后要求覆盖temp01.mkvtemp02.mkv等。但是我仍然投票赞成答案(即使它不会显示),因为它部分起作用。谢谢。
joetex72 '17

@ joetex72答案已更新。
DavidPostill

大卫,这个工作,谢谢。可以修改为使用通配符吗?因为有时moviename有其他字符,但并不总是完全匹配。
joetex72 '17

不容易。我很想先修复文件名...
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.