我正在尝试从当前文件夹和子文件夹中的所有文件中删除前缀 我尝试使用以下仅适用于当前文件夹的代码
setlocal enabledelayedexpansion
for %%F in (*) do (
set "FN=%%F"
set "FN=!FN:~15!"
ren "%%F" "!FN!"
)
goto :eof
请帮我解决这个问题
答案 0 :(得分:1)
for /f "delims=" %%a in ('dir /b /a-d /s') do (
set "fname=%%~nxa"
set "fpath=%%~dpa"
setlocal enabledelayedexpansion
set "nname=!fname:~15!"
ren "!fpath!!fname!" "!nname!"
endlocal
)
这是保护感叹号的安全方法。
答案 1 :(得分:-1)
如果您使用的是Windows 7,可以试试这个:
forfiles /s /c "cmd /c ren @file @fname"
我花了一点时间才找到,但突然间我意识到批处理文件无效,因为它已经重命名了!
如果这成为问题,您可以尝试命名批处理文件zzzzzzzzz.bat
,我认为这会阻止它首先重命名。
莫纳