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

如何用批处理脚本删除指定路径下所有同名文件夹?

批量删除指定名称的文件夹问题

场景说明

我的目录 C:\Users\blabla 下有多个名为toDelete的文件夹,分布在不同层级,比如:

C:\Users\blabla\toDelete
C:\Users\blabla\x1\toDelete
C:\Users\blabla\x2\toDelete

需要删除所有这类文件夹,不管其中包含什么内容。

尝试过的操作及问题

1. 用DEL加通配符

执行脚本:

@echo off
DEL /Q /F "C:\Users\blabla\**\toDelete" 

报错:

The filename, directory name, or volume label syntax is incorrect

2. FOR循环搭配DEL

执行脚本:

@echo off
set folder_name=toDelete
set folder_path=C:\Users\blabla

for /d %%i in ("%folder_path%\*") do (
    if /i "%%~nxi"=="%folder_name%" (
        DEL /s /q "%%i"
    )
)

报错一堆全角空格相关的命令识别错误:

'   ' is not recognized as an internal or external command,
operable program or batch file.
'       ' is not recognized as an internal or external command,
operable program or batch file.
...(重复错误提示)

3. 替换为RD加通配符

执行脚本:

@echo off
RD /Q "C:\Users\blabla\**\toDelete" 

报错:

The system cannot find the path specified.

4. FOR循环搭配RD

执行脚本:

@echo off
set folder_name="toDelete"
set folder_path="C:\Users\blabla"

for /d %%i in ("%folder_path%\*") do (
    if /i "%%~nxi"=="%folder_name%" (
        RD /s /q "%%i"
    )
)

无任何输出,但目标文件夹未被删除。

问题根源

  1. 通配符不支持:CMD原生不支持**这种递归通配符,所以直接用C:\Users\blabla\**\toDelete会被判定为无效路径。
  2. 全角空格问题:第二个脚本里的缩进用了全角空格,CMD会把全角空格当作命令的一部分,导致无法识别。
  3. 引号匹配错误:第四个脚本中给folder_name赋值时加了引号,判断时"%%~nxi"是toDelete(无引号),而%folder_name%是"toDelete"(带引号),两边不相等,所以删除逻辑没触发。

正确解决方法

方法一:修复CMD脚本

修正引号和缩进问题,同时实现递归查找:

@echo off
set "folder_name=toDelete"
set "folder_path=C:\Users\blabla"

:: 递归遍历目标路径下所有子目录,匹配指定名称的文件夹
for /r "%folder_path%" /d %%i in ("%folder_name%") do (
    rd /s /q "%%i"
    echo 已删除文件夹: %%i
)
pause
  • for /r:递归遍历指定路径下的所有层级目录
  • /d:仅匹配目录,不匹配文件
  • set "变量=值":避免引号干扰后续判断
  • rd /s /q:强制删除文件夹及所有内容,无交互提示

方法二:用PowerShell(更简洁)

如果允许使用PowerShell,一行命令即可完成:

Get-ChildItem -Path "C:\Users\blabla" -Name "toDelete" -Directory -Recurse | Remove-Item -Recurse -Force

或者简写版本:

gci "C:\Users\blabla" -dir -rec -name "toDelete" | ri -rec -force
  • Get-ChildItem(gci):递归查找所有名为toDelete的目录
  • Remove-Item(ri):强制删除目录及所有内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:35:02