0

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

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

请帮我解决这个问题

4

2 回答 2

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
)

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

于 2013-10-14T05:56:23.873 回答
-1

如果你使用的是 Windows 7,你可以试试这个:

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

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

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

莫娜

于 2013-10-14T06:25:03.007 回答