Batch file 命令行批处理从其文件名中删除
我有多个文件,希望重命名其文件。 例如,我有 2014_19_24_english_test.doc 把它改成 2014 19 24英语测试.doc 以下是我迄今为止所做的工作:Batch file 命令行批处理从其文件名中删除,batch-file,file-rename,Batch File,File Rename,我有多个文件,希望重命名其文件。 例如,我有 2014_19_24_english_test.doc 把它改成 2014 19 24英语测试.doc 以下是我迄今为止所做的工作: for /f "delims=" %%f in ('dir /b *.hwp') do ren "%%~f" "%%~nf:_= %%~xf" 这是行不通的。任何帮助都将不胜感激 克里斯我发现了,我就是这么做的: for /f "delims=" %%i in ('dir /b "*.doc"') do set LI
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