【发布时间】:2020-04-10 08:48:48
【问题描述】:
所以我的文件(主要是文档)的文件名以“YYYYMMDD - 文件的标题”开头 我想将日期格式更改为 YYYY-MM-DD 我想做一个脚本来批量重命名,因为我会时不时地这样做。
我的蝙蝠代码经过 2 天的研究无济于事:
for %%a in ("*.*") do ren *.* ????-??-??*.*
pause
任何帮助或指向我要查看的正确方向都会非常有帮助。谢谢
最终
rem // Loop through all matching files:
for /F "eol=| delims=" %%F in ('
dir /B /A:-D-H-S "*.*"
') do (
rem // Store the current file name and extension to variables:
set "NAME=%%~F"
rem // Enable delayed expansion to avoid trouble with `!`:
setlocal EnableDelayedExpansion
rem // Rename file by applying sub-string expansion:
ren "!NAME!" "!NAME:~,4!-!NAME:~4,2!-!NAME:~6!!EXT!"
endlocal
)
pause
【问题讨论】:
-
在
Do部分内,将元变量%%a保存到变量var,启用延迟扩展,然后将%%a重命名为@987654328 @ 带有日期分隔符-,插入到第五个位置,然后是第八个位置,然后是 endlocal。 -
谢谢你告诉我应该怎么写。我不是程序员,只是对事物进行研究。据我从您的评论中了解到的.. 并帮助@wellington 的答案 setlocal EnableDelayedExpansion for %%a in (".") do (set var=%%a) & ren (idk where从这里开始) endlocal 暂停,感谢您清除其他帮助我回答问题的人。是的。我希望文件以“YYYY-MM-DD - File.etc 的标题”结尾
-
请参阅this answer,它使用相同的方法,请勿使用惠灵顿答案中的任何内容。
标签: date batch-file rename