查找Windows中的所有空目录(文件夹)

nkoocmlb  于 2023-02-20  发布在  Windows
关注(0)|答案(2)|浏览(416)

如何在Windows中找到所有的空目录?对于Unix,存在find。因此有一个现成的解决方案。使用Windows的最佳解决方案是什么?

fcy6dtqo

fcy6dtqo1#

到目前为止,我找到了几种解决方案:
1.使用Powershell to find empty directories
1.安装Cygwin或Gnu Findtools并按照unix approach.
1.使用Python或其他脚本语言,例如Perl
下面的Powershell代码片段将搜索C:\whatever并返回空的子目录

$a = Get-ChildItem C:\whatever -recurse | Where-Object {$_.PSIsContainer -eq $True}
$a | Where-Object {$_.GetFiles().Count -eq 0} | Select-Object FullName

警告:上面的命令也会返回所有包含子目录的目录(但不包含文件)!
下面的python代码将列出所有空的子目录

import os;
folder = r"C:\whatever";

for path, dirs, files in os.walk(folder):
    if (dirs == files): print path
46scxncf

46scxncf2#

答案中的Powershell脚本实际上并没有找到真正空的文件夹(目录)。它认为包含子文件夹的文件夹是空的。这要归咎于编写该脚本的微软。显然,微软认为包含子文件夹的文件夹是空的。* 这解释了很多事情。*
这是一个1行的Powershell脚本,它实际上会返回所有空文件夹。我将空文件夹定义为实际上是空的文件夹。

(gci C:\Example -r | ? {$_.PSIsContainer -eq $True}) | ? {$_.GetFiles().Count + $_.GetDirectories().Count -eq 0} | select FullName

在上面的例子中,将C:\Example替换为任何你想检查的路径。要检查整个驱动器,只需指定根目录(例如C:\对应驱动器C)。

相关问题