[PowerShell]顯示某資料夾的size
前言
之前用.net要做到這個功能,我大概都是這樣做:
- 使用DirectoryInfo,讀取目標資料夾
- 透過GetFiles(),取得目標資料夾底下檔案,將所有檔案的size加起來。
- 透過GetDirectories(),取得目標資料夾底下,所有資料夾。
- 遞迴呼叫方法,這樣一層一層的將每一個資料夾底下的所有檔案size加起來。
這樣的方法,其實效能很差,加上使用遞迴,什麼時候會爆掉是一件很難說的事,畢竟資料夾可能真的有相當多層。
這個時候,PowerShell就提供了很不錯的方式來實作這個功能。(第一次寫PowerShell,如果有誤,請多指教)
Sample Code
$objFSO = New-Object -com Scripting.FileSystemObject
"size: " + "{0:N2}" -f ($objFSO.GetFolder("C:\Windows\Temp").Size/ 1MB) + " MB"
透過Scripting.FileSystemObject,我們可以輕易取得某一個Folder的資訊。(其實一行就搞定了。)
結果:
結論
這一篇沒什麼重點,只是順便Memo一下,有這麼簡單的方式可以直接讀取到某個資料夾的size,希望給有同樣需求的朋友們一個參考。
blog 與課程更新內容,請前往新站位置:http://tdd.best/