2011/6/26 20:31 |
閱讀數 : 1819
我要推薦
|
| 文章分類 :
PowerShell
Tips
訂閱
前言
之前用.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,希望給有同樣需求的朋友們一個參考。

↑ Grab this Headline Animator
關連文章
[Visual Studio]快速建立自己的project template
[PowerShell]鬼擋牆之呼叫function回傳多個值
[Memo]將XML轉為對應的Entity
[ASP.NET]如何透過動態新增的控制項,再去動態新增控制項