Featured image of post 命令列下透過 PowerShell 統計資料夾大小

命令列下透過 PowerShell 統計資料夾大小

用 cmd 指令 dir /s < 資料夾 > 也能統計大小,但輸出的無用資訊太多,過於複雜。用 di…

用 cmd 指令 dir /s < 資料夾 > 也能統計大小,但輸出的無用資訊太多,過於複雜,無法過濾。使用 dir /s < 資料夾 > | find ‘字串’ 這種方式統計又不通用。在 Windows 7、10、11 以及 Server 版本中,中英文都是不一樣的,通用性太差,因此我轉而使用 PowerShell,既方便又簡潔!

以下是一種可以統計資料夾及其子資料夾大小的 PowerShell 指令:

兩行指令

$folderSize = Get-ChildItem -Path "< 資料夾路徑 >" -Recurse -File | Measure-Object -Property Length -Sum $folderSize.Sum

請將 < 資料夾路徑 > 替換為你要統計大小的資料夾的實際路徑。

這個指令會遞迴地獲取指定資料夾下的所有檔案,計算它們的大小總和,並輸出總大小。

例如,要統計資料夾 C:\MyFolder 及其子資料夾的大小,你可以運行以下指令:

$folderSize = Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum $folderSize.Sum

執行指令後,會輸出資料夾 C:\MyFolder 及其子資料夾的總大小。

你可以將輸出單位轉換為兆字節(MB)。以下是相應的 PowerShell 指令:

$sizeInBytes = (Get-ChildItem -Path "< 資料夾路徑>" -Recurse -File | Measure-Object -Property Length -Sum).Sum $sizeInMB = $sizeInBytes / 1MB "{0:N2} MB" -f $sizeInMB

請將 < 資料夾路徑 > 替換為你要統計大小的資料夾的實際路徑。

這個指令首先獲取指定資料夾及其子資料夾中所有檔案的總大小,然後將檔案大小轉換為兆字節(MB)並輸出結果。

例如,要將資料夾 C:\MyFolder 及其子資料夾的大小以 MB 為單位顯示,你可以運行以下指令:

$sizeInBytes = (Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum).Sum $sizeInMB = $sizeInBytes / 1MB "{0:N2} MB" -f $sizeInMB

執行指令後,會輸出類似下面的結果,數字依據資料夾的大小而定:

123.45 MB

如果要顯示以 GB 為單位的計算,只需將裡面的所有 MB 替換為 GB 即可。

一行指令

你可以將上面的 PowerShell 指令寫成一行:

(Get-ChildItem -Path "< 資料夾路徑>" -Recurse -File | Measure-Object -Property Length -Sum).Sum

請將 < 資料夾路徑 > 替換為你要統計大小的資料夾的實際路徑。

例如,要統計資料夾 C:\MyFolder 及其子資料夾的大小,你可以運行以下指令:

(Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum).Sum

執行指令後,會輸出資料夾 C:\MyFolder 及其子資料夾的總大小。

命令列下透過 PowerShell 統計資料夾大小
以 MB 為單位輸出:

("{0:N2} MB" -f ((Get-ChildItem -Path "< 資料夾路徑>" -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB))

請將 < 資料夾路徑 > 替換為你要統計大小的資料夾的實際路徑。

例如,要將資料夾 C:\MyFolder 及其子資料夾的大小以 MB 為單位顯示,你可以運行以下指令:

("{0:N2} MB" -f ((Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB))

以 GB 為單位輸出:

1
("{0:N2} GB" -f ((Get-ChildItem -Path "C:\MyFolder" -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1GB))