如何在 Windows 上使用 PowerShell 計算文件夾的大小
要確定哪些目錄正在消耗您的存儲容量,明智的做法是檢查它們各自的大小,以識別獨占硬盤驅動器的任何文件或文件夾。當嘗試將大量檔案傳輸到外部存儲設備(例如 USB 驅動器或云服務)時,此信息特別有用。對於 Windows 操作系統,可以通過使用文件資源管理器並打開相應的對話框輕鬆訪問文件屬性。
與依賴本機文件資源管理器應用程序相比,使用 PowerShell 提供了一種更有效的方法來計算 Windows 操作系統中的大型文件夾的大小。這在需要管理組織環境內的多個計算設備上的大量文件和目錄的情況下可能被證明是特別有利的。
如何在 Windows 上使用 PowerShell 計算文件夾的大小
為了確定目錄的尺寸,需要使用 PowerShell 命令 Get-ChildItem 和 Measure-Object,然後使用 Length 屬性和 Sum 參數。
“Get-ChildItem”命令允許從指定目錄及其下級目錄檢索信息。將“Measure-Object”命令與適用的屬性和參數結合使用,可以計算通過“Get-ChildItem”命令(也稱為“cgi”)獲得的項目的“Length”屬性的累積總數。
如果不熟悉 PowerShell,最好仔細閱讀我們描述基本 PowerShell 命令的解釋性文章,以便對 PowerShell 核心能力有一個基本的理解。
鑑於您對使用 PowerShell 命令的熟練程度,我將闡明一種使用這些命令獲取任何給定目錄的尺寸的方法。
請按鍵盤上的 Windows 鍵,然後在搜索欄或出現的命令提示符中鍵入“powershell”,以啟動 PowerShell 應用程序。
請按照以下步驟以管理權限啟動命令提示符:1.右鍵單擊“開始”菜單或任務欄中的“Windows PowerShell”圖標。2.從出現的上下文菜單中,選擇“以管理員身份運行”。3。如果顯示用戶帳戶控制 (UAC) 提示,請單擊“是”以授予必要的權限。
⭐ 在 PowerShell 窗口中,鍵入以下命令:
Get-ChildItem FolderPath | Measure-Object -Property Length -sum
⭐ 在上面的命令中,將FolderPath替換為保存文件夾的目錄路徑。例如,如果您要計算位於 E:\ 驅動器中的下載文件夾的大小,則完整命令將如下所示:
Get-ChildItem E:\Download | Measure-Object -Property Length -sum
該命令的輸出將顯示項目的數量及其各自的大小(以字節為單位)。為了理解這些值的大小,必須將它們轉換為更熟悉的單位,例如千字節、兆字節、千兆字節等,這可以通過一系列除以1024 的冪來實現。這個過程可以讓您更容易理解以及不同存儲容量的文件大小比較。
或者,可以利用“.sum”屬性來獲取聚合大小,然後將其除以諸如 100 萬或 10 億之類的測量單位,以分別以兆字節或千兆字節表示結果。
要獲取有關以兆字節 (MB) 表示的存儲容量值的信息,請在設備上輸入指定的命令,然後按“Enter”鍵。
(gci E:\Download | measure Length-s).sum / 1Mb
以類似的方式,用“1Gb”替換“1Mb”將能夠檢索以 GB 為單位的文件夾大小。
(gci E:\Download | measure Length-s).sum / 1Gb
為了確定文件夾內特定文件類別的大小,可以使用星號(\*)符號,後跟文件擴展名。此方法將僅顯示上述文件類型的大小。
要確定特定目錄下的圖片佔用的存儲空間,可以執行以下操作:
(gci E:\download *.jpg | measure Length-s).sum / 1Mb
使用通配符可以確定特定文件格式是否在給定目錄中佔用最大的磁盤空間。隨後,通過根據文件擴展名過濾內容,可以根據需要刪除或重新定位它們。
如何使用 PowerShell 獲取子文件夾大小
要確定指定目錄(包括所有嵌套子文件夾)內內容的綜合大小,需要將“-Recurse”屬性與前面提到的命令結合起來。此外,使用“-force”功能使我們能夠了解與該特定目錄中的隱藏和操作文件有關的數據。
為了全面了解 C:\Users 文件夾中的全部內容以及所有關聯的子目錄(包括可見元素和隱藏元素),可以使用 PowerShell 命令,該命令將顯示類似於以下的配置:下列:
((gci-force c:\Users-Recurse-ErrorAction SilentlyContinue| measure Length-s).sum / 1Gb)
提供的信息表明,“c:\users”目錄的累計存儲容量約為54GB。值得注意的是,上述命令包含“-ErrorAction SilentlyContinue”屬性,該屬性用於預先阻止在操作執行期間顯示任何潛在錯誤。
如何使用 PowerShell 以表格格式獲取子文件夾大小
為了獲得綜合文件夾結構中每個單獨子文件夾尺寸的聚合表示,可以執行一個 PowerShell 腳本,該腳本提供每個子目錄及其相應度量的可視化描述。當處理包含大量子目錄的廣泛目錄(其中需要頻繁操作)時,這樣的腳本通常被證明是有利的。
要使用 PowerShell 集成腳本環境 (ISE) 執行此腳本,請執行以下步驟:1.在開始菜單中鍵入“powershell”並選擇“Windows PowerShell ISE”,打開 PowerShell ISE。2.打開編輯器後,使用“cd”命令導航到腳本文件所在的目錄。例如,如果您的腳本保存在桌面上,請鍵入“cd %userprofile%\desktop”並按 Enter。3。將光標置於腳本文件的開頭,按“Ctrl + A”選擇所有文本,然後使用“Ctrl + Shift + S”組合鍵將所做的更改保存到剪貼板。或者,單擊左上角的“文件”,選擇“另存為…”,選擇
⭐ 按 Win 鍵並輸入 PowerShell ISE 。從搜索結果中單擊“Windows PowerShell ISE”。
⭐ 接下來,將以下命令複製並粘貼到 PowerShell ISE 控制台中。確保將目錄從 c:\ 更改為您的首選目錄。
$targetfolder = 'C:\'
$dataColl = Get-ChildItem -Force $targetfolder -Directory -ErrorAction SilentlyContinue | ForEach-Object {
$len = Get-ChildItem -Recurse -Force $_.FullName -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum | Select-Object -ExpandProperty Sum
$foldername = $_.FullName
$foldersize = '{0:N2} GB' -f ($len/1Gb)
[PSCustomObject]@{
foldername = $foldername
foldersizeGb = $foldersize
}
}
$dataColl | Out-GridView -Title "Size of Subdirectories in $targetfolder"
單擊“運行腳本”按鈕,或者按“F5”鍵以啟動該腳本的執行。該過程開始後,您將看到一個用戶界面,其中顯示有關所選目錄結構中每個子目錄的尺寸的信息。該對話框的具體內容和外觀可能會有所不同,具體取決於所使用的特定文件系統配置和操作系統版本。
為了進一步細化搜索結果,可以利用PowerShell比較運算符來過濾數據。作為說明,請考慮以下命令,該命令檢索大小屬於 2023 年 6 月和 7 月期間創建的文件夾的文件:
(gci-force E:\Download –Recurse-ErrorAction SilentlyContinue | ? {$_.CreationTime-gt '01/23/23'-AND $_.CreationTime-lt '02/23/23'}| measure Length-s).sum / 1Gb
提供的命令使用別名“?”運算符,表示Where-Object cmdlet,以促進基於指定條件的條件執行。具體來說,比較運算符“-gt”(大於)、“-AND”和“-It”用於評估是否滿足某些條件。此外,變量“CreationTime”是顯示任何輸出之前必須滿足的先決條件。因此,該命令會過濾指定子目錄中創建時間戳位於預定日期範圍內的文件,並且僅在滿足此條件時才會顯示結果。如果遇到錯誤,可能需要驗證命令中使用的日期格式是否與系統設置一致,並相應地重新嘗試操作。
使用 PowerShell 獲取文件夾和子文件夾大小
利用 Windows 操作系統中的文件資源管理器功能,用戶可以確定任何給定目錄或文件的大小。儘管如此,對於那些經常與大量廣泛的目錄交互或在維護大量計算機系統的公司內工作的人來說,使用 PowerShell 提供了一種更有效的完成任務的方法。
一些用戶可能更喜歡採用基於圖形用戶界面 (GUI) 的數據分析方法。為此,可以使用磁盤分析器工具,它提供系統文件組織的可視化表示,並生成詳細的報告,突出顯示佔用系統內存儲容量的最大文件。