批处理应用根据文件内容进行重命名操作
发布时间:2016-12-28 来源:查字典编辑
摘要:我想实现以下的目的:首先,我有个.dat文件,名字是固定的,需要更改这个文件名..dat第1行的内容是:10107xxxxxx,代表的意思是...
我想实现以下的目的:
首先,我有个.dat文件,名字是固定的,需要更改这个文件名.
.dat第1行的内容是:10107xxxxxx,代表的意思是2007.01.01,后面的x内容不固定.如果是1~9月,则第1个字符是空的.
现在要根据这行内容来改文件名.比如10107XXXXXX,改为c01-0101.cvs.
110107xxxxxx,改为c01-1101.cvs
请问该怎么写这个BAT文件.
分析:
读出第一行内容到一变量
区变量的第5个字符,可以判断是否为0
1)如果是0,取变量前2位为月份,否则取前1位,并前缀0,作为月份
2)如果是0,取变量3-4位为月份,否则取2-3位,作为日
解答:
@echooff
for%%iin(*.dat)docall:goren%%i
gotoend
:goren
set/pfirstln=<%1
setyear=%firstln:~4,1%
if/i%year%GTR0(setmonth=0%firstln:~0,1%&setday=%firstln:~1,2%)else(
setmonth=%firstln:~0,2%&setday=%firstln:~2,2%
)
ren%1c01-%month%%day%.cvs
gotoend
:end