在 Windows 中递归删除空目录

在 Windows 中递归删除空目录

我的 Windows 7 计算机上有一个目录,其中包含数百甚至数千个子目录。其中一些包含文件,而另一些则没有。我想删除所有空目录。

查看 del 和 rmdir DOS 命令,似乎无法在不删除所有文件的情况下递归执行此操作。有没有办法从命令行执行此操作?

答案1

您可以使用删除空目录公用事业。

或者,您可以使用这个单行批处理文件(来自下载小队):

for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do rd "%d"

(如果在批处理文件中使用,请替换%d%%d

这是有效的,因为rd不会删除包含文件的目录。

答案2

您也可以使用 ROBOCOPY。它非常简单,也可用于删除大型层次结构中的空文件夹。

ROBOCOPY folder1 folder1 /S /MOVE

这里源和目标都是folder1,因为您只需删除空文件夹,而不必将其他文件移动到其他文件夹。/S选项是跳过复制(在上述情况下为移动)空文件夹。由于文件在同一个驱动器内移动,因此速度也更快。

答案3

由于 Cygwin 带有 GNU find,因此您可以这样做:

find . -type d -empty -delete

或者避免文件夹不再存在时产生的噪音:

find . -type d -empty -execdir rmdir {} +

答案4

免费实用程序空文件夹核弹从您选择的基本文件夹开始,此操作非常有效。它还会删除仅包含空子目录的目录。

相关内容