命令行批量从文件名中删除_

时间:2015-10-15 00:52:35

标签: batch-file file-rename

我有多个文件,并希望重命名其文件 例如,我有

  

" 2014_19_24_english_test.doc"

并将其更改为

  

" 2014 19 24 english test.doc"

这是我到目前为止所做的:

for /f "delims=" %%f in ('dir /b *.hwp') do ren "%%~f" "%%~nf:_= %%~xf"

这不起作用。任何帮助将不胜感激,

克里斯

2 个答案:

答案 0 :(得分:0)

我发现了,这就是我所做的:

for /f "delims=" %%i in ('dir /b "*.doc"') do set LIST=%%i & set LIST | ren "%%~fi" "%%LIST:_= %%"

希望这有帮助。

答案 1 :(得分:0)

您不能将子字符串替换语法与for变量一起使用,因此您需要使用临时变量来执行此操作,使用延迟扩展:

setlocal EnableDelayedExpansion
for /f "delims=" %%f in ('dir /b *.hwp') do (
    set "FNAME=%%~nf"
    ren "%%~ff" "!FNAME:_= !%%~xf"
)
endlocal