Batch file CMD递归删除文件夹(即在多个位置使用相同的文件夹名称)

Batch file CMD递归删除文件夹(即在多个位置使用相同的文件夹名称),batch-file,cmd,Batch File,Cmd,由于Dreamweaver设置混乱,我们的网站开发和质量保证区域中弹出了数千个“_notes”文件夹。有太多的东西无法通过Windows资源管理器删除-所有东西都被锁定了-所以我希望运行一个批处理脚本,为我们一劳永逸地解决它。问题是我不完全确定“rd/S”是否能满足我的要求 我的理解是,rd/S将在我告诉它的文件夹中递归查找,因此如果我说: rd /S r:/<siteName>/_notes/ 阅读有关的帮助、帮助设置和帮助(如果 请注意,/D/R的将递归地遍历目录树 还要注意,

由于Dreamweaver设置混乱,我们的网站开发和质量保证区域中弹出了数千个“_notes”文件夹。有太多的东西无法通过Windows资源管理器删除-所有东西都被锁定了-所以我希望运行一个批处理脚本,为我们一劳永逸地解决它。问题是我不完全确定“rd/S”是否能满足我的要求

我的理解是,rd/S将在我告诉它的文件夹中递归查找,因此如果我说:

rd /S r:/<siteName>/_notes/

阅读有关的
帮助、
帮助设置
帮助(如果

请注意,/D/R的
将递归地遍历目录树

还要注意,
%~na
是提取完整路径的名称部分的有趣语法

所以,把这些小部分放在一起,在命令行上尝试这个命令

for /d /r %a in (*) do @if %~na==_notes @echo rd %a

仔细测试后,删除
echo
命令。

此命令对我有效,我希望这能有所帮助。切换到公用根文件夹,然后键入CMD:

for /d /r . %d in (<folder name>) do @if exist "%d" rd /s/q "%d"
for/d/r.%如果存在“%d”rd/s/q“%d”,则()中的d不存在
将更改为要删除的文件夹的名称。然后将删除所有具有此名称的子文件夹。

nice单线解决方案;-)。我在(_notes)do@echo rd%a中尝试了
用于/d/r%a,但现在我不知道为什么此“解决方案”不起作用。将“echo rd%a”更改为“echo rd/s/q%a”以删除非空目录
for /d /r %a in (*) do @if %~na==_notes @echo rd %a
for /d /r . %d in (<folder name>) do @if exist "%d" rd /s/q "%d"