如何批量重命名文件夹A中包含子文件夹和以filename_ex.doc格式命名的文件,使它们变成filename.doc的格式?
我一直尝试着做这件事情,但一直失败。请帮忙解决。
如何批量重命名文件夹A中包含子文件夹和以filename_ex.doc格式命名的文件,使它们变成filename.doc的格式?
我一直尝试着做这件事情,但一直失败。请帮忙解决。
我猜您想要同时重命名子文件夹中的文件,这也是您在评论Martin James时遇到方向问题的地方。我猜您尝试使用DIR /S选项运行该代码。但是您离成功只有一步之遥:-) 您只需要使用2个循环!
编辑 - 修复代码 一旦输出结果正确,删除ECHO以使其可用。
@echo off
for /r %%D in (.) do (
pushd "%%~fD"
for /f "tokens=1-3 delims=_." %%A in ('dir /b *_ex.ext 2^>nul') do echo ren "%%A_%%B.%%C" "%%A.%%C"
popd
)
_
或者 .
除了在 _ex.ext
出现的情况。路径中的字符不应该是问题,只有文件名需要注意。@echo off
setlocal disableDelayedExpansion
for /f "delims=" %%F in ('dir /b /s *_ex.ext') do (
set "old=%%F"
set "new=%%~nF"
setlocal enableDelayedExpansion
echo ren "!old!" "!new:~0,-3!.ext"
endlocal
)
for "tokens=1-3 delims=_." %a ('dir *_ex.ext') do echo %a_%b.%c
... 如果我的路径中包含字符“.”和“_”,这个命令就会卡住,因为它会搜索文件夹/子文件夹或其他文件。 - Alex