重命名文件的一部分 - 日期

时间:2014-09-19 16:47:27

标签: batch-file rename dos

我需要通过将日期格式从YYYYMMDD移动到MMDDYYYY来重命名多个文件(超过500个),如下所示。请记住,日期已经存在,并且目录中的文件已经具有正确的格式,如Filename_08282014.csv。因此,_2014应该作为更改不正确文件名的基础。 我试图找到一行DOS命令或批处理脚本,但空出来。谢谢你的帮助。

LoadAccount_20140915.csv到LoadAccount_09152014.csv

LoadUser_20140719.csv到LoadUser_07192014.csv

。 。 。 。 。

1 个答案:

答案 0 :(得分:0)

@echo off
setlocal enableDelayedExpansion
set "root_dir=c:\whatever\"
pushd "%root_dir%"

for %%a in ("load*.csv") do (
    set "filename=%%~na"
    set "filename_ex=%%~nxa"
    set datepart=!filename:~-8!
    set year=!datepart:~0,4!
    set month=!datepart:~4,2!
    set day=!datepart:~6,2!
    set name=!filename:~0,-8!

    ren "!filename_ex!" "!name!!month!!day!!year!.csv"

)

只需将root_dir更改为csv所在的位置。这将处理以load开头的所有csv,但您可以更改掩码。