从执行的Get-ChildItem
命令我想检查是否存在大小超过1GB的文件夹。由于特定原因,无法使用Where-Object {$psiscontainer}
直接执行gci命令,必须在执行gci之后进行过滤。
答案 0 :(得分:1)
编辑稍微重新排列代码。
这应该会有所帮助,我使用了您使用Scripting.FileSystemObject
的想法,并修改了该函数以返回比提供的$minsize
更大的所有文件夹
function Get-FolderBySize {
param (
[string]$path,
[Int32]$minSize # in GB
)
$folders = gci -Path $Path -Recurse -Force -ErrorAction SilentlyContinue | ? {$_.PSisContainer -eq $true}
$FileSystemObject = New-Object -ComObject Scripting.FileSystemObject
foreach ($folder in $folders)
{
$size = $FileSystemObject.GetFolder($folder.FullName).Size / 1GB
if ($size -ge $minSize)
{
$size = "{0:N}" -f $size
Write-host "Folder $($folder.Fullname) has a size of $size GB"
$folder
}
}
}