标题: [文件操作] 求教一个用copy命令合并文件的批处理问题 [打印本页]
作者: wadjj 时间: 2008-8-22 03:54 标题: 求教一个用copy命令合并文件的批处理问题
本人电脑知识浅薄,只知道用copy /B a.flv+b.flv+c.flv…… +h.flv 1.flv的命令可以合并文件
但是最近碰到一个难题 我在优酷网下了一个经典剧集(霹雳游侠),其每一个文件都是分成好几个的(比如:霹雳游侠第二季20_1.flv 霹雳游侠第二季20_2.flv 霹……霹雳游侠第二季20_7.flv),给播放、管理、分享都带来了很大的不便,而我上网搜遍 也没有发现可以批量合并FLV的软件,所以求教各位,能否指导我,如何才能编出一个批处理文件,可以把当前目录下
一系列类似 霹雳游侠第二季20_1.flv~霹雳游侠第二季20_*.flv的文件 合并成类似霹雳游侠第二季20_.flv的文件
也就是说,一个批处理文件,可以遍历当前目录所有文件名在_之前一样,在_之后依数字排序的文件(类似A_1.flv到A_12.flv),并把他们合成一个文件(A.flv). 这种批处理文件该如何编,请赐教。
如能得到帮助,将不胜感激。而且我相信这也可以解决很多人的类似问题。。。
作者: pusofalse 时间: 2008-8-22 05:24
- @echo off
- for /l %%a in (1 1 20) do (
- for /f "delims=" %%i in ('dir/b/od %%a_*.flv') do (
- call,set "file=%%file%%%%i+"
- call,set "files=%%files%%%%i;"
- )
- call,copy/b %%file:~,-1%% %%a.flv
- call,del %%files%%
- set "file="&set "files="
- )
- pause
复制代码
如果你的FLV文件是从20-40,就把第二行()中的1 1 20改为20 1 40
如果是以字母命名的,把第二行改为:
for %%a in (a b c d e f g h i j k ...) do (
[ 本帖最后由 pusofalse 于 2008-8-22 05:32 编辑 ]
作者: wadjj 时间: 2008-8-22 13:24 标题: 回复 2楼 的帖子
谢谢这位大虾的回复 待我先试用一下
回来报告使用情况
作者: wadjj 时间: 2008-8-22 13:37 标题: 回复 2楼 的帖子
不好意思啊 但是貌似我这里使用出了点问题
我依您的代码 改成了
@echo off
for /l %%霹雳游侠第一季02 in (1 1 20) do (
for /f "delims=" %%i in ('dir/b/od %%霹雳游侠第一季02_*.flv') do (
call,set "file=%%file%%%%i+"
call,set "files=%%files%%%%i;"
)
call,copy /b %%file:~,-1%% %%霹雳游侠第一季02.flv
call,del %%files%%
set "file="&set "files="
)
pause
把它命名为a.bat 并和霹雳游侠第一季02_*.flv(*=1到7),结果运行后显示如下:
找不到文件
系统找不到指定的文件。
命令语法不正确。找不到文件
系统找不到指定的文件。
命令语法不正确。
……(很多此重复)
不知是什么 恳请指教
[ 本帖最后由 wadjj 于 2008-8-22 13:40 编辑 ]
作者: more 时间: 2008-8-22 14:02
试试这个?- @echo off
- set "str=霹雳游侠第一季02_"
- for %%a in (*.flv) do (set /a n+=1)
- for /l %%a in (1 1 %n%) do (
- call set "var=%%var%%%str%%%a.flv+"
- )
- copy /b %var:~,-1% %str%.flv
复制代码
[ 本帖最后由 more 于 2008-8-22 14:04 编辑 ]
作者: pusofalse 时间: 2008-8-22 15:08 标题: 回复 4楼 的帖子
这不是我的想法,只是你自己看着改得而已。
用5楼的代码吧。
作者: wadjj 时间: 2008-8-22 17:36 标题: 回复 5楼 的帖子
非常感谢您的帮助 这已经帮了我很大的忙了
能不能再提个非分的要求啊
这一系列的文件是 类似 霹雳游侠第一季02_6.flv 这种 不光_后有数字 前面也有
所以能不能把这个代码更进一步
变成可以处理一系列文件 例如 霹雳游侠第一季*(01~??)_*(1~??).flv 合并成 霹雳游侠第一季*(01~??).flv 呢?
无论如何 多谢 !也感谢pusofalse的帮忙 虽然我搞不太懂 我哪里出了错。。。(本人老菜鸟。。。)
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |