如何在Windows中找到所有的空目录?对于Unix,存在find。因此有一个现成的解决方案。使用Windows的最佳解决方案是什么?
fcy6dtqo1#
到目前为止,我找到了几种解决方案:1.使用Powershell to find empty directories1.安装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
46scxncf2#
答案中的Powershell脚本实际上并没有找到真正空的文件夹(目录)。它认为包含子文件夹的文件夹是空的。这要归咎于编写该脚本的微软。显然,微软认为包含子文件夹的文件夹是空的。* 这解释了很多事情。*这是一个1行的Powershell脚本,它实际上会返回所有空文件夹。我将空文件夹定义为实际上是空的文件夹。
(gci C:\Example -r | ? {$_.PSIsContainer -eq $True}) | ? {$_.GetFiles().Count + $_.GetDirectories().Count -eq 0} | select FullName
在上面的例子中,将C:\Example替换为任何你想检查的路径。要检查整个驱动器,只需指定根目录(例如C:\对应驱动器C)。
C:\Example
C:\
C
2条答案
按热度按时间fcy6dtqo1#
到目前为止,我找到了几种解决方案:
1.使用Powershell to find empty directories
1.安装Cygwin或Gnu Findtools并按照unix approach.
1.使用Python或其他脚本语言,例如Perl
下面的Powershell代码片段将搜索C:\whatever并返回空的子目录
警告:上面的命令也会返回所有包含子目录的目录(但不包含文件)!
下面的python代码将列出所有空的子目录
46scxncf2#
答案中的Powershell脚本实际上并没有找到真正空的文件夹(目录)。它认为包含子文件夹的文件夹是空的。这要归咎于编写该脚本的微软。显然,微软认为包含子文件夹的文件夹是空的。* 这解释了很多事情。*
这是一个1行的Powershell脚本,它实际上会返回所有空文件夹。我将空文件夹定义为实际上是空的文件夹。
在上面的例子中,将
C:\Example
替换为任何你想检查的路径。要检查整个驱动器,只需指定根目录(例如C:\
对应驱动器C
)。