PowerShellで「du」コマンド その3

| 2010年10月7日木曜日
【その2】の「du」だと、フルパスが長すぎるとうまく取得できない場合があるのでWSHの力を借りる。

やっていることは、カレントフォルダ内のフォルダを対象に、右クリックのプロパティで取得できるサイズをとっているだけ。

GetFolderのSizeを取っているだけなのであっさりと書けるのがよい。

速度も【その2】の時より早い。
簡単に計測したのでは、【13倍】の速さだった。

$fs = New-Object -ComObject Scripting.FileSystemObject
ls | % {
if ($_.PSIsContainer) {
$name = $_.name
$size = ($fs.GetFolder($_)).size / 1MB
Write-Host $name " : " $size.ToString("0.00") "MB"
}
}

0 コメント: