从当前文件夹中的所有文件以及子文件夹窗口批处理中的文件中删除前缀



>我正在尝试从当前文件夹和子文件夹中的所有文件中删除前缀我尝试以下仅适用于当前文件夹的代码

setlocal enabledelayedexpansion
for %%F in (*) do (
  set "FN=%%F"
  set "FN=!FN:~15!"
  ren "%%F" "!FN!"
)
goto :eof

请帮我解决这个问题

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
)

这是保留感叹号的安全方法。

如果您使用的是 Windows 7,您可以尝试以下操作:

forfiles /s /c "cmd /c ren @file @fname"

花了一点时间才找到,但突然我意识到批处理文件不起作用,因为它已重命名自己!

如果这成为一个问题,您可以尝试将批处理文件命名为zzzzzzzzz.bat我认为这会阻止它首先重命名自己。

蒙纳

最新更新