我想将名称中包含单词“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之间留下空格。无论如何要克服这个问题?
答案 0 :(得分:0)
给它一个毛刺。如果它回显正确的重命名命令,则删除echo
和pause
以激活它。这是未经测试的。包含!
和%
字符的路径会导致问题。
@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
)
)
)