PowerShellフォルダ内のファイルサイズの合計を取得

コンピュータ

ストレージ内で容量を沢山使っているフォルダを探そうと思いスクリプトを考えてみました。

スポンサーリンク

フォルダを指定して取得

(Get-ChildItem "H:\" -File | measure -Sum -Property Length).Sum

H:\直下のファイルのみが対象となります。サブフォルダのファイルは含まれません。

エクスプローラーでファイルを選択するとステータスバーに選択したファイルの個数と合計サイズが表示されます。単位がKBなのでPowerShellの結果を1024で割ると概ね同じ数値であることが確認出来ます。

サブフォルダを再帰的に取得

Get-ChildItem "D:\" -Directory -Recurse | % { [PsCustomObject]@{"FullPath"=$_.FullName;"Size"=(Get-ChildItem $_.FullName -File | measure -Sum -Property Length).Sum} } | Sort-Object -Property Size -Descending | Format-Table

結果

FullPath      Size
--------      ----
H:\asp
H:\backup     3635
H:\Books      123029040
H:\csharp     154873
H:\download
H:\git

あとは、Sizeで並べ替えて大きなフォルダを探せばよいはず。

文字でグラフのようなものを付加

$l =Get-ChildItem "H:\" -Directory | % { [PsCustomObject]@{"FullPath"=$_.FullName;"Size"=(Get-ChildItem $_.FullName -File | measure -Sum -Property Length).Sum} }
$m = $l | measure -Max -Min -Property Size
$l | % { [PSCustomObject]@{"FullPath"=$_.FullPath; "Size"=$_.Size; "Graph" = ("*" * [int]($_.Size / ($m.Maximum) * 10))} } | Sort-Object -Property Size -Descending

結果

code>FullPath           Size Graph
--------           ---- -----
H:\tools      207424585 **********
H:\Books      123029040 ******
H:\py          84993879 ****
H:\Pictures    12725418 *
H:\text         6694371
H:\sh           4556475
H:\ps1          2462571
H:\json          419119
H:\php           340062
H:\csharp        154873
H:\memo           31349
H:\html           19956
H:\md             13806
H:\key            13170
H:\sqlite          4827
H:\backup          3635
H:\javascript      2100
H:\workspace         12
H:\download
H:\asp
H:\git
H:\kotlin
H:\src

数値だけだと認識しずらいかと思いましたが、Sizeで並べ替えるだけで、グラフはいらない感じです。

ChatGPTさんに「PowerShellフォルダ内のファイルサイズの合計を取得するサンプルを書いて」と質問してみる

以下がPowerShellでフォルダ内のファイルサイズの合計を取得するサンプルスクリプトです。

$folder = 'C:\Example'
$size = 0

Get-ChildItem $folder -Recurse | ForEach-Object {
    $size += $_.Length
}

Write-Host "Total size of files in $folder: $($size/1MB) MB"

ここで、「C:\Example」はフォルダのパスです。 合計サイズはMB単位で表示されます。
ChatGPTより引用

コメント