标题: [文件操作] [已经解决]求助:BAT批量为文件添加编号 [打印本页]
作者: shimuren 时间: 2015-9-17 09:08 标题: [已经解决]求助:BAT批量为文件添加编号
本帖最后由 shimuren 于 2015-9-17 21:11 编辑
求助:批量为当前文件夹里面的txt文件名后添加一个编号,编号格式为B+当前年份后两位+月份+日期+随机三位数,如果判断已经有编号则不添加
比如 批处理,B150907001.txt
谢谢!
作者: 回家路上 时间: 2015-9-17 10:50
本帖最后由 回家路上 于 2015-9-17 12:40 编辑
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- set /a n+=1& set m=00!n!
- ren "%%i" "%%~ni,B!date:~2,2!!date:~5,2!!date:~8,2!!m:~-3!%%~xi"
- )
- pause & exit /b
复制代码
作者: shimuren 时间: 2015-9-17 11:32
回复 2# 回家路上
运行不了 提示找不到文件 处理的是文件夹下TXT文件
作者: 回家路上 时间: 2015-9-17 12:45
回复 3# shimuren
和txt放一起执行。
目测你发的几个帖子都是有联系的,说一下你整体需求。1、2、3、4。。。。
作者: shimuren 时间: 2015-9-17 17:17
回复 4# 回家路上
嗯谢谢 大哥
文件夹下面有多个txt文件,我想用bat实现其文件编号和统计行数,同时也能删除这些统计。
比如:有a.txt b.txt c.txt
编号号的文件名:a,B150917002.txt b,B150917003.txt c,B150917002.txt (编号取当前年份后两位+月份+日期+随机编号)
统计行数后的文件名: a,B20150917002,N456854.txt b,B20150917002,N546464.txt c,B20150917002,N558444.txt
删除编号行号:根据名称里面不同字母开头的数字删除,比如a,B150917554.txt删除编号,就只删除,B150917554这段。
要是可以整合在一个bat文件,或者只处理拖拽到图标上的文件就更好了 谢谢
作者: 回家路上 时间: 2015-9-17 19:14
理解了前两步
拖拽N个txt文件到bat上,bat就将“B150917002”和“N456854”类似格式的字符解析获取追加到文件名后面。
然而,并不明白删除编号行号:根据名称里面不同字母开头的数字删除,比如a,B150917554.txt删除编号,就只删除,B150917554这段。是干什么的。
跟上面的明显不应该是同一步的呀,不能加上的同时就删除吧。。。
而且,如果最后三位是随机生成的,只留下“B150917554”这样格式的会重名的。请整理核实
作者: shimuren 时间: 2015-9-17 19:41
回复 6# 回家路上
【删除问题】嗯删除是不在一步我表达错误
应该是:添加前判断一下,要是没有编号则添加,有则先删除后再添加,行号也是一样
【重名问题】
文件名还有有其他参数不会重名,要是是这样的格式 年份前两位+月份+日期+秒数+随机二位数 应该不会重名吧?
谢谢
作者: 回家路上 时间: 2015-9-17 20:04
来点实际的,
a
b
c
d
的到时候你肯定还得改。
txt到底是有啥样的,每都列举些。
该上截图就上截图呗
就算是秒也会重复
作者: shimuren 时间: 2015-9-17 20:16
回复 8# 回家路上
这样的
作者: 回家路上 时间: 2015-9-17 20:41
回复 9# shimuren
拖拽N个txt到bat上- @echo off & setlocal enabledelayedexpansion
- :deal
- for /f "delims=" %%a in ("%~1") do (
- set fn=%%~na
- set ext=%%~xa
- for /f "tokens=1-3* delims=," %%i in ("!fn!") do (
- set /a n=%random%%%1000& set m=000!n!
- set bnum=B!date:~2,2!!date:~5,2!!date:~8,2!!m:~-4!
- for /f "tokens=3 delims=:" %%x in ('find /c /v "" "%~1"') do set nnum=%%x
- ren "%~1" "%%i,%%j,%%k,!bnum!,N!nnum:~1!!ext!"
- )
- )
- shift
- if "%~1" neq "" goto deal
- pause & exit /b
复制代码
作者: shimuren 时间: 2015-9-17 21:00
回复 10# 回家路上
谢谢
作者: 回家路上 时间: 2015-9-17 21:12
请按照标准的文件名格式(你上面最后晒的比较整齐的图)进行实验
不要abcd了。没意义,针对abcd写的脚本也没必要。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |