適材適所

PowerShellを中心にプログラミングやシステム管理の備忘録的なブログ

MENU

【PowerShell】容量の大きなファイルを調べる

最近PCが重い・・・。

そんなときはPCの掃除が必要ですね。

ルンバのように自動で掃除してもらうことはできませんが、

(できますが、ルンバよりも洗浄力が強いのでやらない方がいいです)

PowerShellを使ってディスク領域を占領している方々を調べることができます。

検証環境

Windows10
WindowsPowerShell 5.1
PowerShell7 7.2.2

PowerShellで容量の大きなファイルを調べる

PowerShellを使ってPCの容量を食っている大きなファイルを見つけ出しましょう。

次の一連のコマンドを実行することで変数$rankに大きい順に格納されます。

Set-Location-LiteralPath 'C:\対象のパス'
$files=Get-ChildItem -File -Recurse
$rank=$files|Sort-Object -Property length-Descending

面倒なときはワンライナーで。

##ワンライナー
$rank=dir '対象のパス' -File -Recurse|Sort -Property length-Descending

変数$rankに格納されたファイル一覧はそのままだと大量の情報が表示されるため、少し工夫して見やすくしてあげましょう。

トップ10を確認する

##トップ10を確認する
$rank[0..10]

表示される項目を絞る

##表示される項目を絞る(この例ではフルパスと大きさを指定しています)
$rank|Select-Object fullname,length

特定の拡張子で絞る

##特定の拡張子で絞る
$rank|Where-Object{$_.extension -eq '.xlsm'}

GUIで見る

##GUIで見る(ただしファイル数が多いと動きがモッサリします)
$rank|Out-GridView

ある容量以上のファイルだけを抽出する

##ある容量以上のファイルだけを抽出する(1GB以上を抽出する例。1MBといった指定も可能です)
$rank|Where-Object{$_.length -ge 1GB}

1年以上更新されていないファイルを抽出する

##1年以上更新されていないファイルを抽出する(AddYearsの-1を変更することでより古いファイルを調べられます)
$rank |Where-Object{$_.LastWriteTime -lt (Get-Date).AddYears(-1)}

参考 【PowerShell】色々な条件でファイルを検索する【Get-ChildItem】 - 適材適所

一言で容量の大きなファイルといっても、一見不要そうに見えてみアプリケーションで使用されていたりすることがあります。様々切り口から調べることで容量の大きなファイルの中の、本当に不要なものを見つけやすくなるかと思います。

空き容量はどうなっているか調べる

ちなみにPCの空き容量がどうなっているかはGet-PSDriveコマンドレットを使うと簡単にわかります。

Get-PSDrive -Name C

余計なファイルを削除する前と後に空き容量が増えているのを見ると、ダイエットに成功したときのような、なんとも言えない達成感を得ることができること請け合いです。

参考 【Get-CimInstance,Get-PSDrive】ディスクの空き容量を調べる【PowerShell】 - 適材適所

不要と判断したファイルを削除するにはRemove-Itemで一括削除できるが・・・

容量の大きなファイルを調べて、いらいないファイルが見つかったときはRemove-Itemコマンドレットを使ってPowerShellで削除することができます。

もちろんマウスでカチカチ削除してもいい、というかその方が安全です。

「容量の大きなファイルがわかった!面倒だからRemove-Itemで一括で全部消しちゃえ!!」なんて危険なことはゆめゆめ考えないようにお願いします。

PCのファイルは単体で動いているものだけではないので1つのファイルを消したことでアプリケーションが動かなくなる・・・なんてこともあり得ます。

そのため、Remove-Itemを使った一括削除はできますが、ここではできますよ、とだけ書いておくに留めます。

終わりに

長年使っているとPCにも意図せずゴミが溜まります。

たまにはゴミ掃除をしてPCをきれいな状態に保ってあげましょう。

そんなときにここで紹介した一連のコマンドが少しでも参考になれば幸いです。

というわけで、ここまでお読み頂き、ありがとうございました。