WINDOWS下使用cmd命令和bat批处理遍历子目录合并ts文件
任务概述
我下载了一些视频在本地,本以为下载下来就能看,没想到下载下来发现每个视频都是个单独的文件夹,每个文件夹里都是好多ts文件,如图:每个文件夹对应一个视频
每个文件夹对应一个视频
文件夹内如图:一个视频被分成了若干个.ts后缀的文件
所以任务目标就是把每个文件夹内的若干视频片段合成整个视频
1.0 cmd命令
文件合并嘛,这个好说
Win+R打开"运行",输入cmd回车
输入命令:
copy /b D:\Desktop\xcache\Moc_1206999229_1215209729_1\*.ts D:\Desktop\xcache\Moc_1206999229_1215209729_1\new.ts
(“D:\Desktop\xcache\Moc_1206999229_1215209729_1\”是ts文件的绝对路径,“*.ts ”用通配符指定目标文件类型)
回车执行命令就可以合并相应文件夹里的所有ts文件,生成一个new.ts
打开文件夹看到new.ts已经在了
方法可行,依次改变命令中的文件地址部分就可以依次合并了,但是问题来了,一次一次改命令实在是太麻烦了,懒病犯了实在受不了
2.0 cmd文件
为了偷懒就想办法呗,因为改命令麻烦嘛,就想能不能不用改
这个也好说,使用相对路径呗
建一个txt文本文档,输入命令 copy /b *.ts new.ts,重命名为后缀.cmd文件
先复制一下,然后依次粘贴进每个文件夹内,双击运行,黑色窗口一闪就可以了
再配合键盘快捷键,所以就是
- Ctrl+V //粘贴
- Enter //执行
- Backspace //退回父目录
- ↓ //(方向键)下一个文件夹
- Enter //进入
这个顺序一直循环按键盘就可以了,还算比较轻松
但是懒癌晚期怎么可能满足!将近一百个文件夹呢,还是太累了,所以……
3.0 bat批处理
哎,像写程序一样让它直接循环来不就可以了
当然可以
还是建一个txt文本文档,输入命令
for /d %%s in (Moc*) do ( //循环条件:对于每个Moc开头的子目录执行操作
cd %%s //进入子目录
copy /b *.ts newone.ts //合并文件
cd .. //退回上级目录
)然后重命名后缀为.bat,拖进父目录,不要再拖进子目录了喂
双击运行,等着黑色窗口唰唰唰……结束,大功告成
一点需要注意,合并文件前,需要保证ts文件是按顺序排列的,顺序有问题可以通过改文件名如1.xx,2.xx……这样达到按顺序排列的目的
总结:很多类似的本地文件操作都可以通过cmd+bat灵活配合这种方式实现,特别是这种命令非常简单不需要什么编程基础的情况,用到的时候真的很省时省力