これは指定フォルダの配下のフォルダがどの程度ディスク領域を圧迫しているか確認する為のPowerShellスクリプトです。
ちなみにサンプルとして、検査フォルダは無難なとこで"c:\temp"
としてるので、
以下のスクリプトをコピペ実行する場合は、まずはデータが少ないフォルダに変更してから実行してみることをお勧めはしときます。
$ErrorActionPreference = "silentlycontinue"
gci "c:\temp" | where {$_.PSIsContainer} | %{ @{$_.name=([int](gci $_.fullname -recurse | where { $_.Length} | measure Length -Sum).Sum)} } | %{ $_.GetEnumerator()} | Format-Table @{n="used(byte)";e={"{0:N0}" -f $_.value};a="right"},Name
個人的なこのスクリプトのポイントは、
[int](gci $_.fullname -recurse | where { $_.Length} | measure Length -Sum)
の部分で、[int]
にキャストしているところ。対象フォルダにファイルがひとつも無い場合、gci
が$null
を返してエラーになるところを
int
でキャストしてNULL ->0
変換してるところがミソな気がしてます。
ちなみに
$ErrorActionPreference = "silentlycontinue"
はアクセス権限が無い系のエラーを抑制する為だけなので必須では無いです。
お役に立てれば。