如何从重命名中排除bat文件本身

时间:2014-08-05 09:23:35

标签: windows batch-file scripting batch-processing

以下情景:

我写了一个批处理脚本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文件,那将是很好的。

1 个答案:

答案 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"