💻

フォルダーサイズ一覧を取得するPowerShellコマンド

2024/11/07に公開

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