标题: [其他] 【已解决】文件合成的批处理代码,求大神优化下 [打印本页]
作者: 332971606 时间: 2015-8-4 12:54 标题: 【已解决】文件合成的批处理代码,求大神优化下
本帖最后由 332971606 于 2015-8-5 13:40 编辑
- @echo off
- set num=1
- :A
- if exist "??????????????%num%[1].ts" (copy /b 1.ts + ??????????????%num%[1].ts) else (pause&exit)
- set /a num+=1
- goto :A
复制代码
代码中的??????????????%num%[1].ts 是文件名,前面有11个字符位置, 按num变量一直加,然后做If判断,
copy /b 可以把1.ts和找到的文件合并起来放到 1.ts里,
这个代码运行很慢,求大哥大神帮忙优化下,
本来这个合成用 copy /b *.ts 1.ts 合成非常快,但是默认排序是首字母排序,
10到19 或100到199 会跳到 2 的上面.
求大神帮忙解决下,先跪谢了,
附文件样本网盘:http://pan.baidu.com/s/1jG1qGg2
可能之前我表达的不清楚,让很多大神迷糊了,对不住大神们了,先对所有查看过本贴的表示非常非常巨大的感谢,
谢谢大家了.
作者: 332971606 时间: 2015-8-4 15:47
求大神帮忙整整
作者: CrLf 时间: 2015-8-4 21:50
另一种思路- @echo off & setlocal enabledelayedexpansion
- set "p=????????????">1.ts
- for /l %%a in (1 1 10) do (
- if exist !p!.ts (
- copy /b 1.ts+!p!.ts
- set "p=!p!?"
- ) else (
- pause
- exit /b
- )
- )
复制代码
作者: 332971606 时间: 2015-8-4 22:59
回复 3# CrLf
遍历条件里的最大数不稳定,文件个数可能到3位数,提问里的代码会变满的原因是,1.ts变大以后就会变满,
作者: 回家路上 时间: 2015-8-5 00:04
本帖最后由 回家路上 于 2015-8-5 08:27 编辑
回复 4# 332971606
菜鸟表示一下自己的想法。- 先把所有文件重命名,规则如下:
- 文件名中所有的
- 0———》a
- 1———>b
- 2———>c
- 3———>d
- 4———>f
- 5———>g
- 6———>h
- 7———>i
- 8———>j
- 9———>k
- 如果是每增加一位,在重命名的时候最前面多个“z”
- 如:
- 10———》zba
- 19———》zbk
- 28———>zcj
- 136———>zzdh
- 然后,再用你说那比较快的【copy /b *.ts 1.ts】排序是有了
- 不知道会不会快
复制代码
作者: CrLf 时间: 2015-8-5 00:53
回复 4# 332971606
5 楼想法不错,不想该文件名的话也可以试试这样- @echo off & setlocal enabledelayedexpansion
- set "p=????????????"
- (for /l %%a in (1 1 10) do (
- if exist !p!.ts (
- findstr .* !p!.ts
- set "p=!p!?"
- ) else (
- pause>con
- exit /b
- )
- ))>1.ts
复制代码
作者: 332971606 时间: 2015-8-5 09:07
回复 6# CrLf
运行了下,发现没有退出结果,1.ts会无限加,
那个文件名的特点是
前面肯定有11个字符,然后是一个递加的数,后面的是固定的[1].ts,
5#的改名不知道怎么写,我又发了个求改名的,想把中间那个递加数的前面补0补到3位数
作者: 332971606 时间: 2015-8-5 13:38
回复 8# tigerpower
666666 ,如梦初醒哇,太精辟的几句了,我的问题解决了, 如果里面的1.ts 能改名,或者改名为当前文件夹的名字.ts, 就真神了
作者: nwm310 时间: 2015-8-5 17:50
給 NTFS 磁碟機使用- md 0 00 000
- move *-?[1].ts 0
- move *-??[1].ts 00
- move *-???[1].ts 000
- for %%a in ("%cd%") do copy /b 0\* + 00\* + 000\* "%%~nxa.ts"
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |