从所有子文件夹中删除具有特定名称的子文件夹?

从所有子文件夹中删除具有特定名称的子文件夹?

我知道如何通过掩码删除一个或多个子文件夹:

rmdir /s /q C:\Somedir\DirToDelete

或者

rmdir /s /q C:\Somedir\DirsToDelete*

但是我想从 C:\Somedir 内的所有子文件夹中删除所有子文件夹,比如名为 DeleteMe 的子文件夹。

有想法吗?

答案1

首先,您需要列出所有要删除的目录。然后使用它来删除所有目录。这是一个使用您放入其中的内容的快速示例。

for /f "usebackq" %%a in (`"dir C:\Somedir /ad/b/s DirsToDelete"`) do rmdir "%%a"

请在将其用于您的环境之前先进行测试。我通常会用 echo 替换 rmdir 以确保其正常工作。

答案2

另一种方法是(仅限 PowerShell)

 Remove-Item -path e:\path\*\path\*\* -Filter *DeleteMe* -WhatIf

移除所有删除我目录在最后的“星号”路径中递归。

-WhatIf = 仅显示要删除哪些目录,不删除则不删除 - 适合在销毁其他数据之前进行检查:)

更新 1 经过一番努力...这次更新更好了...前一行只能删除空文件夹。这可以删除包含以下内容的文件夹:

get-childitem -path E:\path\*\path\*\* -recurse -filter *DeleteMe* | remove-item -whatif -force -recurse

答案3

  1. 创建一个 bat 文件,更新并粘贴以下代码

FOR /d /r . %%d IN ("您要删除的文件夹名称") DO @IF EXIST "%%d" rd /s /q "%%d"

  1. 将此 bat 文件复制到你的父文件夹(也可以是 C: 或 D:)
  2. 运行

相关内容