duコマンドでディレクトリごとの容量を一発で出力するで du -sh ./*/
について説明したが、Windows PowerShellでは関数を定義することで同等のコマンドが定義できる。
引用元:PowerShell で which、PowerShell で du
まずは単純なduコマンド相当について
(dir -literalpath c:\work -recurse -force | measure-object Length -sum).Sum
これは関数は定義不要。
du -s ./*/
コマンド相当は
function dusage{
param([String]$tgtDir = (pwd).Path)
filter dusage_filter{
$sum = (dir -literalpath $_.FullName -recurse -force -erroraction silentlycontinue |
measure-object Length -sum).Sum
$result = New-Object Object |
Add-Member NoteProperty Folder $_.FullName -PassThru |
Add-Member NoteProperty Size $sum -PassThru
return $result
}
dir $tgtDir -force -erroraction silentlycontinue |
? {$_.PSIsContainer} | dusage_filter
}
dusage -tgtDir c:\work | sort -des size
#あるいは
cd c:\work
dusage -tgtDir . | sort -des size