batch-file - 如何使用命令提示符以正确的顺序合并文件

标签 batch-file cmd merge concatenation command-prompt

我有一个文件夹,其中包含 mpeg-dash 视频的视频片段。 有一个“init.mp4”文件以及 275 个段,即“seg-1.m4s”、“seg-2.m4s”等。我想将它们合并到一个文件中。 我在cmd中使用以下命令: 复制/b init.mp4 + seg-*.m4s source.mp4 上面的代码以错误的顺序合并文件。 see the merge order

如何以正确的顺序合并文件,例如 1,2,3...9,10,11..19,20...

另请注意,我尝试使用循环将它们一一合并。但这比上面的代码慢得多

最佳答案

一个非常简单的纯批处理文件解决方案:

@echo off
setlocal EnableDelayedExpansion

rem Sort file names in numerical order
for /F "tokens=1,2 delims=-." %%a in ('dir /B *.m4s') do (
   set /A "num=1000+%%b"
   set "file[!num!]=%%a-%%b.m4s"
)

rem Create the ordered list
set "files=init.mp4"
for /F "tokens=2 delims==" %%a in ('set file[') do set "files=!files! + %%a"

rem Do it
copy /B %files% source.mp4

关于batch-file - 如何使用命令提示符以正确的顺序合并文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53365884/

相关文章:

batch-file - 用于查找名为 "Main"且具有任意整数扩展名的文件的 DOS 搜索模式表达式是什么?

windows - 找出批处理文件在多少个父进程下运行

python - 将 Python 脚本应用于 Blender 中的大量 .obj 文件

android - OpenCV 合并两个掩码

git - 使用 merge 或 rebase 来维护一个部署分支

batch-file - 在cygwin中从网络共享(vmware共享文件夹)运行批处理文件

batch-file - BAT 文件读取底部 16 行并将其从文本文件复制到另一个文件?

batch-file - 如何制作批处理文件以运行热键

windows - 如何确定 Windows 上的命令是否存在?

powershell - 使用PDFTK将PDF分成多页?