批处理应用:根据文件内容进行重命名操作
            脚本专栏 发布日期:2025/10/31 浏览次数:1
         
        
            正在浏览:批处理应用:根据文件内容进行重命名操作
            我想实现以下的目的: 
首先,我有个.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位,作为日 
解答: 
@echo off 
for %%i in (*.dat) do call :goren %%i 
goto end 
:goren 
set /p firstln=<%1 
set year=%firstln:~4,1% 
if /i %year% GTR 0 (set month=0%firstln:~0,1%& set day=%firstln:~1,2%) else ( 
    set month=%firstln:~0,2%& set day=%firstln:~2,2% 
) 
ren %1 c01-%month%%day%.cvs 
goto end 
:end