批量重命名目录从“注意”到“注意”

时间:2013-08-11 03:15:55

标签: batch-rename

我想将名称中包含单词“NOTE”但不是“NOTES”的目录重命名为“NOTES”。我首先尝试使用echo命令。

for /f "tokens=1-7"  %%i in ('dir d:\mydirectory /s /b /ad ^|find "NOTE" ^|find "NOTES" /v') do @echo %%i %%j %%k %%l %%m %%n %%oS

因为目录名中有不同的空格,上面的命令可能会在“NOTE”和S之间留下空格。无论如何要克服这个问题?

1 个答案:

答案 0 :(得分:0)

给它一个毛刺。如果它回显正确的重命名命令,则删除echopause以激活它。这是未经测试的。包含!%字符的路径会导致问题。

@echo off
setlocal enabledelayedexpansion
for /d /r %%a in (*) do (
  set "f=%%~nxa"
     if not "!f:NOTE=!"=="%%~nxa" (
        if "!f:NOTES=!"=="%%~nxa" (
           echo ren "%%a" "!f:NOTE=NOTES!"
           pause
        )
     )
)