「ディスク容量が足りない」「どのファイルが大きいのか知りたい」
こんなとき、いちいちエクスプローラーで1つずつチェックしていませんか?
PowerShellを使えば、フォルダ内のファイルサイズを一括で取得し、大きい順に一覧表示することができます。しかも一瞬で処理完了。
この記事では、容量の大きいファイルを簡単に見つけるPowerShellスクリプトを紹介します。
この記事でできること
- PowerShellでフォルダ内のファイルサイズを一覧表示
- サイズの大きい順に並べて重たいファイルを特定
- サイズをMB・GBでわかりやすく表示
- サブフォルダも含めて調査可能
- CSV形式で保存もできる
基本スクリプト:ファイルサイズを一覧表示する
$folder = "C:\Users\YourName\Documents"
Get-ChildItem -Path $folder -File | Select-Object Name, @{Name="SizeMB";Expression={[math]::Round($_.Length / 1MB, 2)}}
解説
Get-ChildItem -File:ファイルのみ取得
Select-Object:表示項目を選択
@{Name=…}:カスタム列の作成(サイズをMB単位で表示)
実行結果(例)
Name SizeMB
---- -------
report_2024.pdf 12.47
backup.zip 109.38
notes.txt 0.02
ファイル名とサイズ(MB)が一覧で出力され、視覚的に確認できます。
応用①:サイズ順に並べる(大きい順)
$folder = "C:\Your\Folder"
Get-ChildItem -Path $folder -File |
Sort-Object Length -Descending |
Select-Object Name, @{Name="SizeMB";Expression={[math]::Round($_.Length / 1MB, 2)}}
ポイント
- Sort-Object Length -Descending:サイズの大きい順に並べ替え
- すぐに「容量を食っている犯人」がわかります!
応用②:サブフォルダも含めて調査する
Get-ChildItem -Path $folder -File -Recurse |
Sort-Object Length -Descending |
Select-Object FullName, @{Name="SizeMB";Expression={[math]::Round($_.Length / 1MB, 2)}}
- -Recurse を追加するだけでサブフォルダも対象に
- FullName を使えばフルパスで表示されるので場所も特定しやすい
応用③:CSV形式で保存してExcelで管理
$folder = "C:\Your\Folder"
$output = "$folder\file_sizes.csv"
Get-ChildItem -Path $folder -File -Recurse |
Sort-Object Length -Descending |
Select-Object FullName, @{Name="SizeMB";Expression={[math]::Round($_.Length / 1MB, 2)}} |
Export-Csv -Path $output -NoTypeInformation -Encoding UTF8
- 出力結果は file_sizes.csv として保存され、Excelで開けます
- チームで共有したい場合やバックアップにも便利です
よくあるエラーと対処法
アクセスが拒否されました
管理者としてPowerShellを実行してください。
日本語ファイル名が文字化けする
Export-Csv の -Encoding UTF8 を忘れずに。
空の結果になる
-File を指定していて、対象がフォルダだけだった可能性があります。外して確認してみましょう。
まとめ
PowerShellを使えば、重たいファイルの特定・サイズの可視化・CSV出力まで、すべて自動で処理できます。GUIでポチポチ探すより圧倒的に効率的。
しかも、一度スクリプトを書いておけば、毎回コピペするだけで再利用可能。ぜひ試してみてください!