You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10下批量合并不同文件名视频轨道的Batch脚本问题

Windows 10下批量按顺序配对合并MKV轨道的Batch脚本

针对你需要按顺序配对两个目录中MKV文件、合并不同轨道的需求,这里提供修改后的Batch脚本,替代原有的同名匹配逻辑:

@echo off
setlocal enabledelayedexpansion

:: 创建输出目录(不存在则新建)
if not exist "joined" mkdir "joined"

:: 初始化计数器
set "count=0"

:: 将目录1的所有MKV文件名存入变量数组
for /f "delims=" %%f in ('dir /b /a-d "1\*.mkv"') do (
    set /a count+=1
    set "file1[!count!]=%%f"
)

:: 将目录2的所有MKV文件名存入变量数组
set "count=0"
for /f "delims=" %%f in ('dir /b /a-d "2\*.mkv"') do (
    set /a count+=1
    set "file2[!count!]=%%f"
)

:: 按索引配对文件并执行合并
for /l %%i in (1,1,!count!) do (
    set "src1=!file1[%%i]!"
    set "src2=!file2[%%i]!"
    echo 正在合并:1\!src1! + 2\!src2! -> joined\!src1!
    mkvmerge --output "joined\!src1!" ^
        --no-audio --no-subtitles "1\!src1!" ^
        --no-video --no-chapters --no-global-tags --no-attachments "2\!src2!"
)

endlocal
echo 所有文件合并完成!

关键说明

  1. 延迟扩展启用:通过enabledelayedexpansion实现循环中变量的动态赋值与读取,确保数组变量能正确存储和调用文件名
  2. 文件名数组存储:用两个变量数组分别存储两个目录的文件名,通过计数器索引实现顺序配对
  3. 排序一致性:dir /b /a-d命令会按系统默认的文件名排序规则输出文件列表,确保两个目录的文件顺序对应
  4. 输出逻辑:合并后的文件直接沿用目录1的文件名,存入joined目录

注意事项

  • 确保mkvmerge已添加到系统环境变量,若未添加需在脚本中指定完整路径(如"D:\Tools\mkvmerge.exe")
  • 需保证两个目录的MKV文件数量完全一致,否则会出现部分文件无法配对的情况
  • 若需要调整排序规则,可修改dir命令的参数(如添加/o:n强制按名称排序)

内容的提问来源于stack exchange,提问作者Enrico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 13:34:59