以下情景:
我写了一个批处理脚本whitch将日期戳添加到文件名中。文件夹中有许多不同的文件类型。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "datestamp=%YYYY%-%MM%-%DD%_"
:: naming like ISO 8601
pause
for %%i in (*.*) do ren %%i %datestamp%%%i*
有没有一种方法可以将bat文件本身从重命名中排除?如果有办法排除所有.bat文件,那将是很好的。
答案 0 :(得分:2)
您在REN语句中的尾随*
没有做任何事情 - 不需要它。
如果您遇到带空格的名称,则应将REN文件名括在引号中。
过滤(跳过)正在运行的批处理文件很容易。可以将DIR / B传送到FINDSTR / V以获取除运行脚本之外的文件列表。 %~nx0
给出正在运行的脚本的文件名和扩展名。 FOR / F用于捕获和处理文件列表。
for /f "eol=: delims=" %%F in ('dir /b /a-d ^| findstr /vixc:"%~nx0"') do ren "%%F" "%datestamp%%%F"