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

时间:2013-10-14 05:06:55

标签: windows batch-file batch-rename

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

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

请帮我解决这个问题

2 个答案:

答案 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,我认为这会阻止它首先重命名。

莫纳

相关问题