我试图创建一个.bat文件,该文件遍历.bat文件所在目录中的每个文件,并将遵循MM_DD_YY*.*
命名约定的所有文件重命名为{{ 1}}。
例如,YY_MM_DD*.*
将成为05.20.16 MyFile.txt
。
我设法迭代了文件名,但是我在编写前8个字符的子字符串时遇到了麻烦,并将它们与16.05.20 MyFile.txt
的格式进行了比较。
##.##.##
感谢任何帮助!
答案 0 :(得分:0)
本发明提供:
您可以使用分隔符.
和space
将日期元素和剩余文件名分隔为变量%%A
- %%D
,并按所需顺序重新排列。
为了更好地区分新格式我建议将分隔符(至少暂时)更改为-
并将年份扩展为4位数。
@echo off & setlocal EnableDelayedExpression
for /f "tokens=1-3* delims=. " %%A in (
'dir /b /A-D "??.??.?? *.txt" ^| findstr "^[01][0-9]\.[0-3][0-9]\.[0-9][0-9].*"'
) do Echo Ren "%%A.%%B.%%C %%D" "20%%C-%%A-%%B %%D"
出于安全原因,批次仅回显它将重命名的内容 如果输出看起来没问题,直到你删除前面的回声。