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

Batch脚本如何按正确数字顺序批量拼接多个.ts文件为单个文件

Batch 按数字升序合并 TS 文件解决方案

可用脚本

直接复制以下内容保存为.bat文件,放到你的TS文件同目录下运行即可:

@echo off
setlocal enabledelayedexpansion

:: 基础配置,可根据实际情况修改
set "BaseName=A"
set "OutputFile=joined_files.ts"
set "StartNumber=1"

:: 清理已存在的输出文件,避免内容重叠
if exist "%OutputFile%" del /f /q "%OutputFile%"

set "FileNumber=%StartNumber%"
:MergeLoop
set "CurrentFile=%BaseName%%FileNumber%.ts"
:: 当前序号文件不存在则结束合并
if not exist "!CurrentFile!" goto Finish

if not exist "%OutputFile%" (
    :: 第一个文件直接初始化输出文件
    copy /b "!CurrentFile!" "%OutputFile%" >nul
) else (
    :: 后续文件追加到输出文件末尾
    copy /b "%OutputFile%" + "!CurrentFile!" "%OutputFile%" >nul
)

set /a FileNumber+=1
goto MergeLoop

:Finish
echo 合并完成,总计合并 %FileNumber%-%StartNumber% 个文件
echo 输出文件路径:%~dp0%OutputFile%
pause

原脚本问题说明

你之前写的脚本无法正常运行的核心原因有3个:

  • 误用了未定义的变量%G%,导致copy命令无法匹配到正确的TS文件
  • 未开启延迟变量扩展,循环内修改的FileNumber变量无法实时生效
  • 拷贝逻辑错误,每次执行copy都会直接覆盖目标文件,而非按顺序追加内容,最终只会保留最后一个文件的内容

使用说明

  • 如果你的文件前缀不是A,修改BaseName变量的取值即可,比如文件命名为video1.ts就改为set "BaseName=video"
  • 如果文件序号不是从1开始,修改StartNumber的取值即可,比如从10开始就改为set "StartNumber=10"
  • 脚本会严格按数字升序匹配文件,支持任意大小的编号,不会出现字典序排序错乱的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:45:01