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

command line batch remove _ from its file name

我有多个文件,想重命名它的文件。
例如,我有

"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"

这是行不通的。如有任何帮助,我们将不胜感激,

克里斯

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

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

希望对您有所帮助。

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

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