Powershell监视磁盘使用情况 - 脚本查询的性能

时间:2013-04-17 06:28:06

标签: powershell size disk

我正在开发以下powershell来报告我的磁盘使用情况,并让我知道哪些文件夹的大小正在变化等等...

Get-ChildItem -Path "C:\" | 
Select-Object Name,
    @{ 
        Name="Size";
        Expression=
            { 
                [Math]::Round(
                    ((($_ | Get-ChildItem -Recurse | Measure-Object -Sum Length).Sum + 0) / 1GB)
                    , 2)
            }
    }

这个脚本真的很慢......为什么?

每次查看文件夹时,Measure-object都会评估大小吗?

最好的办法是什么?

由于

1 个答案:

答案 0 :(得分:0)

您在C驱动器上列出每个文件系统对象并测量其大小,这可能需要很长时间才能完成。两种选择(还有更多):

(Get-PSDrive c).Used/1gb

- and -

$cDrive = (New-Object -ComObject Scripting.FileSystemObject).GetDrive('C')
$used = ($cDrive.TotalSize-$cDrive.FreeSpace)/1gb
$used.ToString('N2')