...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

容量が大きい順にフォルダを列挙

PowerShell で which、PowerShell で du …

職場のファイルサーバが一杯になって大規模に整理,削除しなくちゃいけないので,
まずは容量分布を調べたかった。

largefolderlist.csv ファイルが新しく作成されて,そこに書き出されます。

Write-Host $Args[0]

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 $Args[0] | sort -des size | Export-Csv -Path largefolderlist.csv -Encoding Default -NoTypeInformation

出力サンプル

Folder	Size
C:\Users\haru\Documents\KIT\Laboratory	999720770
C:\Users\haru\Documents\KIT\レポート色々	146172754
C:\Users\haru\Documents\KIT\inshi	1140498