我在多个文件夹中有大量文件,文件名格式为:
FILE DESCRIPTION_MM DD YYYY_F_XXXXX.EXTENSION
FILE DESCRIPTION
是可变数量的字符。 XXXXX
也是可变数量的字符。扩展名为pdf
,doc
或docx
。要使用的分隔符是_
的第一个实例。示例:
Foo File_01 01 2016_F_Bar.pdf
我需要通过将Date重新排序到前面来重命名每个文件。它不是当前的格式,而是
MM DD YYYY_FILE DESCRIPTION_F_XXXXX.EXTENSION".
因此,我需要删除DATE和_
的第二个实例,并将其移动到文件名的前面。这相当于11个字符,包括_
。
扩展名需要保持不变。使用上面的例子:
01 01 2016_Foo File_01 01 2016_F_Bar.pdf
另外,我只想重命名格式为" FILE DESCRIPTION_MM DD YYYY_F_XXXXX.EXTENSION"忽略所有其他情况,其中文件已使用前面的DATE格式化,以及没有DATE的情况。
非常感谢任何帮助!
答案 0 :(得分:0)
尝试一些测试数据
@echo off
FOR /F "delims=" %%G IN ('dir /a-d /b /s *_*_*.pdf *_*_*.doc *_*_*.docx ^|findstr /R /C:".*_[0-9][0-9] [0-9][0-9] [0-9][0-9][0-9][0-9]_F_.*\."') DO (
FOR /F "TOKENS=1,2* delims=_" %%H IN ("%%~nxG") DO rename "%%~G" "%%~I_%%~H_%%~J"
)