我尝试将所有文件夹中的文件从someFile_v4重命名为someFile_v5。不幸的是,我收到错误消息,系统找不到指定的文件。
@echo off
for /R %%f in (*_v4.xml) do call :ProcessFile
goto :Finished
:ProcessFile
rename "*_v4.xml" "*_v5.xml"
goto :eof
:Finished
答案 0 :(得分:0)
这里的问题是您使用的是for
循环,实际上对其中的变量没有任何作用。
尝试以下操作:
我还建议您考虑更改:
for /r
到for /f
,请在循环中使用dir /s /b /a-d
。
@echo off & setlocal EnableDelayedExpansion
for /f "tokens=* delims= " %%i in ('dir /s /b /a-d "*_v4.xml"') do (
set "_ren=%%~fi"
for /f "delims=" %%I in ('dir /w /b "%%~i"') do set "_to=%%~nxI"
ren "!_ren!" "!_to:_v4=_v5!"
set _ren=0<nul & set _to=0<nul
)
抱歉,我无法解释我的代码,因为我不太懂英语。