搜索目录大于n大小

时间:2017-11-20 12:21:22

标签: powershell directory size

是否有任何PowerShell命令可以遍历特定路径以查找大于n大小的目录? 我知道我可以找到大于n大小的文件,但我需要验证目录大小,因为有些情况下文件夹中有1000个文件,每个文件都有1个MB,所以目录的总数是1 GB。 这发生在C:\ windows下。

1 个答案:

答案 0 :(得分:1)

PowerShell cmdlet不会累积目录中嵌套项的大小,但您可以使用FileSystemObject COM对象:

$threshold = 1GB

$fso = New-Object -COM 'Scripting.FileSystemObject'

Get-ChildItem 'C:\root\folder' -Recurse -Directory | Where-Object {
    $fso.GetFolder($_.FullName).Size -gt $threshold
}

PowerShell v3引入了-Directory参数。如果您需要使用此功能来处理PowerShell v2,则需要选择带有Where-Object过滤器的目录。

Get-ChildItem 'C:\root\folder' -Recurse | Where-Object {
    $_.PSIsContainer -and
    $fso.GetFolder($_.FullName).Size -gt $threshold
}