You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CMD脚本批量重命名父文件夹下子目录中的指定文件夹?

批量重命名子目录内指定文件夹的CMD脚本解决方案

问题根源

你当前的脚本失效的核心原因:

  1. FOR /D %%D IN (*.*) 只会遍历父文件夹下带扩展名的子目录,应该用(*)来匹配所有子目录。
  2. 循环内的REN命令没有指定子目录路径,只会在父文件夹(当前工作目录)查找目标文件夹,根本找不到子目录里的Foo/Bar/Baz,所以无法执行重命名。

解决方案1:固定规则的简洁脚本

如果你的重命名规则是固定的几个,用这个脚本最直接:

@echo off

:: 遍历父文件夹下所有一级子目录
for /d %%D in (*) do (
    :: 检查子目录内是否存在目标文件夹,存在则重命名
    if exist "%%D\Foo" ren "%%D\Foo" "Apple"
    if exist "%%D\Bar" ren "%%D\Bar" "Banana"
    if exist "%%D\Baz" ren "%%D\Baz" "Mango"
)

pause

解决方案2:可扩展规则的通用脚本

如果后续需要添加更多重命名规则,用这个版本更方便,只需修改rename_rules变量即可:

@echo off
setlocal enabledelayedexpansion

:: 定义重命名规则,格式:原名称=新名称,多个规则用分号分隔
set "rename_rules=Foo=Apple;Bar=Banana;Baz=Mango"

:: 遍历父文件夹下所有一级子目录
for /d %%D in (*) do (
    :: 拆分重命名规则并逐个处理
    for %%R in ("!rename_rules:;=" "!") do (
        for /f "tokens=1,2 delims==" %%A in ("%%~R") do (
            if exist "%%D\%%A" (
                ren "%%D\%%A" "%%B"
                echo 完成重命名: %%D\%%A → %%D\%%B
            )
        )
    )
)

endlocal
pause

使用说明

  1. 将上述任意一个脚本保存为.cmd格式文件(比如rename_folders.cmd),放到父文件夹中。
  2. 双击运行脚本,即可自动完成所有目标文件夹的重命名。
  3. 如果需要递归处理所有层级的子目录(不仅仅是一级子目录),把外层的for /d %%D in (*)改成for /r /d %%D in (*)即可。

内容的提问来源于stack exchange,提问作者Gosmith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:45:07