批处理如何实现根据文件内容进行重命名操作

这篇文章将为大家详细讲解有关批处理如何实现根据文件内容进行重命名操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

我想实现以下的目的:
首先,我有个.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

关于“批处理如何实现根据文件内容进行重命名操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。