如何在 Windows 11/10 中使用 PowerShell 獲取文件夾大小

如何在 Windows 11/10 中使用 PowerShell 獲取文件夾大小

通常,在基於 Windows 的 PC 上,您可以通過右鍵單擊項目或文件夾然後從上下文菜單中選擇屬性來檢查項目或文件夾的大小。在本文中,我們將向您展示如何在 Windows 11/10 中使用 PowerShell 檢查或獲取文件夾大小。

如果項目或文件夾的大小明顯更大(例如,大於 100 GB),您可能想要使用 PowerShell 而不是傳統方法來獲取文件夾的用例。在這種情況下,使用傳統方法可能需要一段時間才能讓文件夾屬性窗口最終填充項目的大小——更重要的是,顯示的可能不是文件夾的實際大小。

如何在 Windows 11/10 中使用 PowerShell 獲取文件夾大小

出於某種原因,您可能需要文件夾的大小——例如,估計移動文件夾(移動到本地驅動器、外部驅動器或云存儲上的另一個位置)所需的時間或持續時間,或者如果相當大一個大文件夾,只需將其刪除即可釋放硬盤空間——您可以使用 PowerShell 立即獲取文件夾/目錄的大小。我們將在以下小標題下討論該主題。

  1. 用於獲取文件夾大小的 PowerShell 命令
  2. 以字節、MB 和 GB 為單位獲取文件夾大小
  3. 以十進制獲取文件夾大小
  4. 獲取特定文件類型項目的大小
  5. 獲取文件夾和子文件夾大小
  6. 使用時間過濾器獲取文件夾和子文件夾的大小
  7. 使用 PowerShell 腳本獲取所有子目錄文件夾大小

1] PowerShell 命令獲取文件夾大小

以下是 2 個主要的 PowerShell cmdlet,它們可以與開關和參數一起使用,以根據您的要求過濾結果以獲得文件夾的大小。

  • Get-ChildItem(別名:GCI)——該命令從一個或指定的目錄中獲取信息,包括子目錄——空目錄不顯示或顯示。
  • Measure-Object(別名:measure)——該命令計算指定目錄的不同屬性,包括其大小。

別名是命令的替代名稱,因此您不必每次都鍵入整個命令。

2] 以字節、MB 和 GB 為單位獲取文件夾大小

以字節為單位的文件夾大小

以字節為單位獲取文件夾大小

Get-ChildItem PathToFolder | Measure-Object -Property Length -sum

以 MB 為單位的文件夾大小

以 MB 為單位獲取文件夾大小

(gci PathToFolder | measure Length -s).sum / 1Mb

以 GB 為單位的文件夾大小

以 GB 為單位獲取文件夾大小

(gci PathToFolder | measure Length -s).sum / 1Gb

“總和”字段以字節、MB 和 GB 為單位顯示文件夾的大小,視情況而定。

3]以十進制獲取文件夾大小

以十進制獲取文件夾大小

由於文件夾大小有很多小數位,因此以 MB 和 GB 為單位的文件夾大小的輸出乍看之下難以理解。因此,您可以運行以下命令以小數形式四捨五入結果。將“ X ”替換為您希望將結果四捨五入到的小數位數,並根據需要指定 GB 或 MB。

"{0:NX} GB"-f ((gci PathToFolder | measure Length -s).sum / 1Gb)

4]獲取特定文件類型項目的大小

獲取特定文件類型項目的大小

如果要獲取具有相同文件類型/擴展名的文件夾中所有項目的大小,請運行以下命令。相應地替換 FileType/Extension 佔位符。

(gci PathToFolder *.FileType/Extension | measure Length -s).sum / 1Gb

5]獲取文件夾和子文件夾的大小

獲取文件夾和子文件夾大小

要獲取文件夾和子文件夾(包括裡面的項目)的大小,您必須使用-Recurse參數推測使用的參數-ErrorAction SilentlyContinue來繞過目錄訪問錯誤,如 Permission is denied 等。

要獲取父目錄和子目錄的大小,您可以運行以下任一命令。

(gci PathToFolder –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb "{0:NX} GB"-f ((gci –force PathToFolder –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)

此 cmdlet 還將包括任何隱藏項的大小。

6]使用時間過濾器獲取文件夾和子文件夾的大小

使用時間過濾器獲取文件夾和子文件夾的大小

您可以獲得父文件夾和子文件夾的大小,還可以應用過濾器來查找在特定日期、特定月份或特定年份創建的項目的大小。這可以通過指定開始日期和結束日期來定義,這兩個日期分別由-gt(大於)和-lt(小於)參數定義。日期格式為 MM/DD/YY。

要獲取在特定時間段內創建的包含子文件夾的文件夾的大小,請運行以下命令。相應地替換 MM/DD/YY 佔位符。

(gci -force PathToFolder –Recurse -ErrorAction SilentlyContinue |? {$_.CreationTime -gt ‘MM/DD/YY’ -AND $_.CreationTime -lt ‘MM/DD/YY’}| measure Length -s).sum / 1Gb

您還可以使用前面給出的命令應用這些過濾器,以僅獲取父文件夾的文件夾大小。

7] 使用 PowerShell 腳本獲取所有子目錄文件夾大小

現在,讓事情變得更複雜,讓我們假設您必須獲得文件夾中每個子目錄的大小。這也可以使用 PowerShell 來完成。當然,要獲取所有子目錄文件夾大小(包括子目錄內項目的大小)並以整潔的表格格式呈現,您可以使用以下代碼創建並運行 PowerShell 腳本。

$targetfolder='DriveLetter:\'
$dataColl = @()
gci -force $targetfolder -ErrorAction SilentlyContinue |? { $_ -is [io.directoryinfo] } | % {
$len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % { $len += $_.length }
$foldername = $_.fullname
$foldersize= '{0:N2}' -f ($len / 1Gb)
$dataObject = New-Object PSObject
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldername” -value $foldername
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeGb” -value $foldersize
$dataColl += $dataObject
}
$dataColl | Out-GridView -Title “Size of all subdirectories in DriveLetter drive”

相應地替換上面代碼中的 DriveLetter 佔位符,並確保打開 PowerShell 腳本執行。

就是這樣!

有沒有辦法在 Windows 中查看文件夾的大小?

檢查文件夾大小的常規方法是打開文件資源管理器並右鍵單擊要查看大小的文件、文件夾或驅動器。從出現的菜單中,選擇屬性,您將看到文件/驅動器的總大小。執行相同任務的非常規方法是使用 PowerShell,正如我們在上面這篇文章中所演示的那樣。

列出文件夾和大小的 DOS 命令是什麼?

dir命令顯示有關文件和目錄的信息,以及可用的磁盤空間量。默認情況下,該命令顯示當前目錄中每個文件的名稱、大小和最後修改時間。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *