以下批处理代码从文件名中删除了字符“ x”,但也删除了扩展名“ .docx”中的“ x”。如何防止代码重命名扩展名?
for /f "delims=" %%a in ('dir /b /a-d *x*.docx') do (
set "fname=%%~a"
setlocal enabledelayedexpansion
set "nname=!fname:x=!"
ren "!fname!" "!nname!"
endlocal
)
从拆分使用扩展名%%~na
并%%~xa
随后做只是名称替换,然后简单地加入扩展名为的新名称。
您也不需要dir cmd。如果您的文件位于的根目录中,请D:\test
运行以下命令:
@echo off
setlocal enabledelayedexpansion
for %%a in ("D:\test\*x*.docx" ) do (
set "fname=%%~a"
set "xonly=%%~xa"
set "nonly=%%~dpna"
set "nonly=!nonly:x=!"
ren "!fname!" "!nonly!!xonly!"
)
如果您的文件位于的子目录中,D:\test
则进行递归搜索:
@echo off
setlocal enabledelayedexpansion
for "D:\Test" /R %%a in (*x*.docx) do (
set "fname=%%~a"
set "xonly=%%~xa"
set "nonly=%%~dpna"
set "nonly=!nonly:x=!"
ren "!fname!" "!nonly!!xonly!"
)
请注意,这%%~a
将是驱动器和文件,因此我们确保将其设置!nonly!
为驱动器,路径和名称,即%%~dpna
有关变量替换的更多帮助,请打开cmd.exe
并运行for /?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句