2013-04-17 34 views
0

我有以下的PowerShell我正在開發對我的磁盤使用情況報告,並給我一個想法加班其中的文件夾的大小發生變化,等等PowerShell來監視磁盤使用 - 腳本查詢的執行

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

這個腳本真的很慢......爲什麼?

每次查看文件夾時,測量對象的評估大小是多少?

什麼是更好的方法來做到這一點?

感謝

回答

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')