🗂️💻 PowerShellで簡単!フォルダサイズを一括計算するスクリプト
こんにちは!今回は、PowerShellを使って指定したフォルダ内のサブフォルダサイズを簡単に計算するスクリプトをご紹介します。このスクリプトを使えば、大量のフォルダのサイズを瞬時に把握できます。さあ、一緒に見ていきましょう!
🌟 スクリプトの特徴
- サブフォルダのサイズを自動計算
- 結果を見やすい表形式で表示
- 隠しファイルも含めて計算
- エラーを無視して処理を継続
📝 スクリプト本体
$path = "C:\User\user"
Get-ChildItem -Path $path -Directory | ForEach-Object {
$size = (Get-ChildItem $_.FullName -Recurse -Force -ErrorAction SilentlyContinue |
Where-Object { !$_.PSIsContainer } |
Measure-Object -Property Length -Sum).Sum / 1MB
[PSCustomObject]@{
"Folder" = $_.Name
"Size (MB)" = [math]::Round($size, 2)
}
} | Format-Table -AutoSize
🔍 スクリプトの解説
-
パスの設定:
$path = "C:\User\user"
計算したいフォルダのパスを指定します。必要に応じて変更してください。
-
サブフォルダの取得:
Get-ChildItem -Path $path -Directory
指定したパス内のサブフォルダを全て取得します。
-
各フォルダのサイズ計算:
ForEach-Object { ... }
各サブフォルダに対して以下の処理を実行します。
-
ファイルサイズの合計:
$size = (Get-ChildItem $_.FullName -Recurse -Force -ErrorAction SilentlyContinue | Where-Object { !$_.PSIsContainer } | Measure-Object -Property Length -Sum).Sum / 1MB
-
-Recurse
: サブフォルダも含めて全てのファイルを取得 -
-Force
: 隠しファイルも含める -
-ErrorAction SilentlyContinue
: エラーを無視して続行 -
Where-Object { !$_.PSIsContainer }
: ファイルのみを対象とする - サイズの合計をMB単位に変換(GB単位にしたい場合は"1GB"とする)
-
-
結果のフォーマット:
[PSCustomObject]@{ "Folder" = $_.Name "Size (MB)" = [math]::Round($size, 2) }
フォルダ名とサイズ(小数点2桁まで)を格納したオブジェクトを作成
-
表形式で表示:
Format-Table -AutoSize
結果を見やすい表形式で出力します。
💡 使い方
- スクリプトをテキストエディタにコピーし、
.ps1
拡張子で保存します(例:GetFolderSizes.ps1
)。 -
$path
変数を、計算したいフォルダのパスに変更します。 - PowerShellを開き、スクリプトのあるディレクトリに移動します。
- 以下のコマンドでスクリプトを実行します:
.\GetFolderSizes.ps1
🚀 活用例
- 大量のプロジェクトフォルダのサイズを一括チェック
- バックアップ前にフォルダサイズを確認
- ディスククリーンアップの際の対象フォルダ選定
⚠️ 注意点
- PowerShellの実行ポリシーが適切に設定されていることを確認してください。
- 大量のファイルやサブフォルダがある場合、処理に時間がかかる場合があります。
🎉 おわりに
このスクリプトを使えば、フォルダサイズの管理が格段に楽になります。ぜひ試してみてください!カスタマイズや改善点があれば、コメントで教えてくださいね。Happy PowerShelling! 🚀💻