循环当前目录的所有子文件进行文件名称修改
写一个bat循环当前目录的所有子文件,把文件名如果有包含"字符串1"替换为"字符串2"
同时处理文件名和文件夹名,只要名字里有 字符串1 就改成 字符串2
文件夹需要 从最深层往外层改名,避免路径提前变动导致找不到文件夹。
文件名和文件夹名都用同样的替换规则。
递归遍历当前目录及所有子目录中的文件和文件夹,并将名称中的"字符串1"替换为"字符串2"
@echo off
setlocal enabledelayedexpansion
echo === 开始批量重命名 ===
REM 先处理文件(递归)
for /r %%f in (*_jfq26*) do (
set "oldname=%%~nxf"
set "newname=!oldname:_jfq26=_gsq27!"
if not "!oldname!"=="!newname!" (
echo 文件: "%%f"
ren "%%f" "!newname!"
)
)
REM 再处理文件夹(必须倒序,否则路径丢失)
for /f "delims=" %%d in ('dir /ad /b /s *_jfq26* ^| sort /R') do (
set "oldname=%%~nxd"
set "newname=!oldname:_jfq26=_gsq27!"
if not "!oldname!"=="!newname!" (
echo 文件夹: "%%d"
ren "%%d" "!newname!"
)
)
echo.
echo === 批量重命名完成!===
pause
📌 用法:
- 把上面代码保存成
rename_all_jfq26_to_gsq27.bat - 放到要处理的目录下,双击运行
- 会递归处理所有子文件和子目录