Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【Ask_AI】PowerShellでサイズの大きいフォルダのリストを作る

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

【AIによる回答】

PowerShellを使用して、指定したディレクトリ内のサブフォルダを含め、サイズが大きい順にフォルダのリストを作成する方法を紹介します。
目的や好みに合わせていくつかの方法がありますが、最も一般的で実用的なコマンドは以下の通りです。
1. サイズが大きいフォルダのリストを作成するコマンド (基本)
このコマンドは、現在のフォルダ配下のサブフォルダのサイズを計算し、大きい順にトップ10を表示します。
powershell
Get-ChildItem -Directory | 
    Select-Object FullName, @{Name="Size(MB)";Expression={
        (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | 
        Measure-Object -Property Length -Sum).Sum / 1MB
    }} | 
    Sort-Object "Size(MB)" -Descending | 
    Select-Object -First 10
2. サイズをGBで表示し、CSVファイルに書き出す
大規模なフォルダを調査する場合、MBでは数値が大きくなりすぎるため、GB単位にして結果をCSVファイルに保存します。
powershell
$targetPath = "C:\Your\Target\Folder" # 調査したいフォルダパス
$outputFile = "C:\temp\FolderSizes.csv" # 出力先CSVパス

Get-ChildItem -Path $targetPath -Directory | 
    Select-Object FullName, @{Name="Size(GB)";Expression={
        (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | 
        Measure-Object -Property Length -Sum).Sum / 1GB
    }} | 
    Sort-Object "Size(GB)" -Descending | 
    Export-Csv -Path $outputFile -NoTypeInformation -Encoding UTF8
コマンドの解説
  • Get-ChildItem -Directory: サブフォルダのみを取得します。
  • Get-ChildItem -Recurse -File: フォルダ配下の全ファイルを再帰的に取得します。
  • -ErrorAction SilentlyContinue: アクセス権がないフォルダなどでエラーが出ても停止せず続行します。
  • Measure-Object -Property Length -Sum: 取得したファイルの合計サイズ(バイト)を計算します。
  • / 1MB または / 1GB: バイト単位の数値をMBやGBに変換します。
  • Sort-Object ... -Descending: 大きい順に並べ替えます。
  • Export-Csv: 結果をCSVファイルに出力します。
    GMO Developers +5
注意点
  • 実行時間: ファイル数やフォルダの深さによっては、計測に時間がかかる場合があります。
  • アクセス権限: 管理者権限が必要なフォルダを調査する場合は、PowerShellを「管理者として実行」してください。
タイトルとURLをコピーしました