检查是否存在具有特定大小的文件夹

时间:2015-01-21 18:37:05

标签: powershell

从执行的Get-ChildItem命令我想检查是否存在大小超过1GB的文件夹。由于特定原因,无法使用Where-Object {$psiscontainer}直接执行gci命令,必须在执行gci之后进行过滤。

1 个答案:

答案 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
        }
    }
}