スクリプト4 サイズの大きいフォルダーを検出する

 普段使用しているパソコンには様々なアプリケーションがインストールされているはずです。そのアップデートなどによって、大量の一時ファイルが残ってしまい、いつの間にかハードディスクの空き容量が無くなってしまうことがあります。こうした場合に、不要なファイルやフォルダーを削除する必要があります。コンピューターの中でどのフォルダーがむやみに容量を占有しているのか、スクリプトで探索しましょう(図3-17)。

図3-17●フォルダーのサイズを調べるスクリプト
図3-17●フォルダーのサイズを調べるスクリプト
引数で指定したフォルダーと、その配下にあるフォルダーのサイズを取得して、大きさの降順で表示する。同じような処理を2回繰り返しているように見えるが、これは指定したフォルダー(ルートフォルダー)とサブフォルダーで似たような処理を実施しているため。
[画像のクリックで拡大表示]

 このスクリプトは「Get-ChildItem」コマンドを利用して、指定したフォルダーと、配下のすべてのサブフォルダーのサイズを探索して、容量の大きい上位10件を表示します。スクリプト内ではパイプを利用して、効率的に処理しています。

 スクリプトにはパラメーターとして、探索対象のフォルダーのパスを渡します。ここをルートフォルダーとしてサブフォルダーを探索します。スクリプトの処理は大きく2段階に分かれています。まずルートフォルダー直下のファイルサイズを合計して、フォルダーサイズを取得します(図3-18)。

図3-18●フォルダーのサイズを求める手順
図3-18●フォルダーのサイズを求める手順
基本は「Get-ChildItem」コマンドを使う。このコマンドは、ファイルなどの項目を取得するために使う。「-Recurse」を指定すると、サブフォルダーも含めて実行する。
[画像のクリックで拡大表示]