💻
フォルダーサイズ一覧を取得するPowerShellコマンド
Windows PowerShellでフォルダーサイズを確認するコマンド・スクリプトを紹介します。
対象ディレクトリの直下にあるフォルダーとファイルのサイズを一覧表示することができます。
Windows 11のPowerShell 5.1で動作確認済み。
コマンド
ListFolderSize.ps1
param (
[String]$path = "."
)
function Get-FolderSize {
param ($folderPath)
$folderSize = (Get-ChildItem -Path $folderPath -Recurse -File | Measure-Object -Property Length -Sum).Sum
if ($folderSize) {
return $folderSize
} else {
return 0
}
}
$items = Get-ChildItem -Path $path | ForEach-Object {
[PSCustomObject]@{
Type = if ($_.PSIsContainer) { "D" } else { "F" }
Name = $_.Name
Size = if ($_.PSIsContainer) { Get-FolderSize $_.FullName } else { $_.Length }
}
}
$totalSize = ($items | Measure-Object -Property Size -Sum).Sum
$items | ForEach-Object {
[PSCustomObject]@{
Type = $_.Type
Name = $_.Name
Percent = "{0:P0}" -f ($_.Size / $totalSize)
Size = "{0:N0} MB" -f ($_.Size / 1MB)
}
} | Format-Table -Property Type, Name, @{Label="Percent"; Expression={$_.Percent}; Alignment="Right"}, @{Label="Size"; Expression={$_.Size}; Alignment="Right"}
使い方
PowerShellスクリプト(.ps1
)として保存して実行してください。PowerShellターミナルに直接貼り付けて実行することもできます。
スクリプトを実行する際は、調べたいディレクトリのパスを引数として渡すことができます。引数を省略すると、カレントディレクトリが対象になります。
実行例
PS C:\Users\User> .\ListFolderSize.ps1
Type Name Percent Size
---- ---- ------- ----
D .aws 0% 0 MB
D .ssh 0% 0 MB
D .vscode 3% 512 MB
D Contacts 0% 0 MB
D Downloads 96% 18,712 MB
D Favorites 0% 0 MB
D Links 0% 0 MB
D Music 0% 0 MB
D OneDrive 1% 271 MB
D Pictures 0% 0 MB
D Saved Games 0% 0 MB
D Searches 0% 0 MB
D Videos 0% 0 MB
F ListFolderSize.ps1 0% 0 MB
PS C:\Users\User> .\ListFolderSize.ps1 Downloads
以下略
結果の説明:
- Type:
D
はフォルダー(ディレクトリ)、F
はファイル - Name: フォルダー名またはファイル名
- Percent: 対象ディレクトリの占有率
- Size: フォルダーサイズまたはファイルサイズ
Discussion