【问题标题】:How to exclude the bat-file itself from the renaming如何从重命名中排除 bat 文件本身
【发布时间】:2014-08-05 09:23:34
【问题描述】:

以下场景:

我已经编写了一个批处理脚本,它将日期戳添加到文件名中。文件夹中有许多不同的文件类型。

@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 文件,那就太好了。

【问题讨论】:

标签: windows batch-file scripting batch-processing


【解决方案1】:

您在 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"

【讨论】:

    猜你喜欢
    • 2018-08-17
    • 2014-06-07
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 2020-09-11
    • 2020-12-04
    • 2017-06-05
    • 1970-01-01
    相关资源
    最近更新 更多