我正在开发以下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都会评估大小吗?
最好的办法是什么?
由于
答案 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')