PowerShell: ◆グループ化して最終データを生かすでGroup-Objectコマンドレットを使ったときにグループ集計もやってみようと思い、そのままになっていたので試してみようと思う。
そもそも、かつてはプログラムといえば「ソート、マッチング、ブレーク集計」するための物。
なのでグループ集計なんて簡単にできるのかと思ったのだが、意外と「これ」といったコマンドが見つからない。
仕方なく、ごねごねとやって見る。
ファイルサーバーで容量を食っているファイルはどんな種類のファイルかを見てみたかったので、まずはある拡張子のファイルを抽出して容量の合計を求める。
PS>(dir d:\documents -Filter *.xlsx -r | measure length -sum).sum /1kb |
あとは、これを特定の拡張子だけではなく全てのファイルに対して行えば良い。
001 002 003 004 005 006 007 008 009 010 011 | Dir d:\documents -r | ?{!$_.psiscontainer} | Group-Object Extension | %{ $len = $_ | select -ExpandProperty Group | measure -Sum -Property length $len = $len.sum / 1kb Add-Member -Type NoteProperty -Name Length -Value $len -Input $_ -PassThru } | sort length -Descending | ft name,count,@{ name="length(kb)" expression={$_.length.ToString("#,##0.0")} alignment="Right" } -auto |
もう少しすっきり書けても良いような気はするのだが・・・。
このコメントはブログの管理者によって削除されました。
返信削除