我想实现以下的目的:
首先,我有个.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
首先,我有个.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
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“批处理应用根据文件内容进行重命名操作”评论...
更新日志
2024年12月23日
2024年12月23日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]