[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】サイズの大きいフォルダを見つけるサンプルプログラム



更新日:2019/10/23


サイズが大きいフォルダを順に表示する


Windows 10 環境においてファイルの合計サイズが大きいフォルダ(ディレクトリ)を探すサンプルプログラムです。いつのまにかディスク容量が不足し、どのフォルダが大きいか探し出す場合に使用してください。
大きい順にトップ10を表示しています。サイズはMで表示しています。再帰的に計算しているため多少時間がかかります。

(注意)管理者権限で開いたPowershell プロンプトでないと"アクセスが拒否されました"エラーが発生します。

以下はPowershellのサンプルプログラムです。
$SearchFolder 変数に検索するフォルダの一番上位を指定してください。そのサブフォルダを検索します。以下の例では"Program Files (x86)"を指定しています。プログラムをインストールしすぎていつのまにかディスクがパンクしている場合に活用してください。


$SearchFolder = "c:\Program Files (x86)"

$Items = Get-ChildItem $SearchFolder | Where-Object {$_.PSIsContainer -eq $true} | Sort-Object
$output=@("")

foreach ($i in $Items)
{
$subFolderItems = Get-ChildItem $i.FullName -recurse -force | Where-Object {$_.PSIsContainer -eq $false} | Measure-Object -property Length -sum | Select-Object Sum
$output += "{0:000000.0000}" -f ($subFolderItems.sum / 1MB) + "MB" + "---" + $i.FullName

}

$output | sort-object -Descending | head -10



ちなみにC:\Windows や C:\Users はアクセスが拒否され検索が失敗する場合があるようです。


実行結果


以下はc:\Program Files (x86) で実行した結果です。Office で約2351M、要するに2.3G消費していることが分かります。
その他VisualStudioなどが大きなサイズを使用していることが分かります。


002351.7345MB---C:\Program Files (x86)\Microsoft Office
002252.8694MB---C:\Program Files (x86)\Microsoft Visual Studio
002237.1576MB---C:\Program Files (x86)\Microsoft Visual Studio 14.0
001444.6551MB---C:\Program Files (x86)\Windows Kits
001249.9736MB---C:\Program Files (x86)\Common Files
000789.0993MB---C:\Program Files (x86)\Reference Assemblies
000613.3468MB---C:\Program Files (x86)\Microsoft SDKs
000466.3922MB---C:\Program Files (x86)\Google
000446.5993MB---C:\Program Files (x86)\AWS SDK for .NET
000363.7683MB---C:\Program Files (x86)\Adobe








プログラムを改造する


以下で結果をサイズでソートし、かつ上位10を表示しています。head -10 の部分を変更すれば表示項目を変更することが可能です。


$output | sort-object -Descending | head -10



以下はC:\Program Filesに対して head -5 で実行した結果です。


003960.3512MB---C:\Program Files\Adobe
001084.7996MB---C:\Program Files\CyberLink
001041.7090MB---C:\Program Files\Common Files
000473.3763MB---C:\Program Files\Microsoft SQL Server
000291.8507MB---C:\Program Files\Intel




ファイルサイズが小さい順に表示する


小さい順に実行するにはsort-objectをパラメータなしで実行します。


$output | sort-object | head -10



以下は実行結果です。


PS C:\> $output | sort-object | head -10

000000.0000MB---C:\Program Files\ModifiableWindowsApps
000000.0000MB---C:\Program Files\test
000000.0012MB---C:\Program Files\Online Services
000000.0246MB---C:\Program Files\MSBuild
000000.0455MB---C:\Program Files\Windows Multimedia Platform
000000.0455MB---C:\Program Files\Windows Portable Devices
000000.1053MB---C:\Program Files\Windows Security
000000.1391MB---C:\Program Files\Roxio
000000.5855MB---C:\Program Files\Bonjour








[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018