Windows Powershellでドライブ内のサイズが大きいファイルを調べる

公開日:
目次

PCの容量が増えてきたときに大きいファイルがどれか調べたので備忘録です。

今回はWindows Powershellを使ってCドライブ内のサイズが大きいファイルを調べる方法を紹介します。

Windows PowershellでCドライブ内のサイズが大きいファイルを調べる方法

まずは、Powershellを管理者権限で開きます。スタートメニューから「Windows Powershell」を検索して「管理者として実行」をクリックします。
Image from Gyazo

Cドライブ内のファイルを探す

以下のコマンドを入力して、エンターを押して実行します。

Get-ChildItem C:\ -Recurse -Force -ErrorAction SilentlyContinue | 
    Sort-Object Length -Descending | 
    Select-Object FullName, @{Name="Size(GB)";Expression={[math]::round($_.Length /1GB, 2)}} -First 20

少し時間がかかります(私の場合は7分程度でした)。

実行が完了すると、Cドライブ内のサイズが大きいものから20個目までのファイルの一覧が表示されます。
Image from Gyazo

コマンドの説明とカスタマイズ

このコマンドの説明と簡単なカスタマイズは以下の通りです。

Cドライブ以外のドライブを探す

Get-ChildItem C:\ -Recurse では、Cドライブ内の全てのファイルを再帰的に取得します。

Cドライブ以外のドライブ(例えばDドライブやEドライブ)を検索する場合は、Get-ChildItemコマンドのドライブの指定部分を変更するだけです。例えば、Dドライブ内のファイルを探す場合は、次のようにします。

Get-ChildItem D:\ -Recurse -Force -ErrorAction SilentlyContinue | 
    Sort-Object Length -Descending | 
    Select-Object FullName, @{Name="Size(GB)";Expression={[math]::round($_.Length /1GB, 2)}} -First 20

同様に、Eドライブを探したい場合は、E:\を指定します。

これで、Cドライブや他のドライブ内の5GB以上のファイルの一覧を得ることができます。必要に応じて、各サイズの閾値やドライブを変更することで、探索するファイルの条件を調整できます。

エラーを確認する

-ErrorAction SilentlyContinue : アクセスできないフォルダがあった場合でもエラーを無視します。

エラーを確認したい場合は、SilentlyContinueStopに変更してください。

Get-ChildItem C:\ -Recurse -Force -ErrorAction Stop | 
    Sort-Object Length -Descending | 
    Select-Object FullName, @{Name="Size(GB)";Expression={[math]::round($_.Length /1GB, 2)}} -First 20

このように、エラーの扱いを変更することで、エラーが発生した場合にどのように処理するかを調整できます。

昇順で表示する

Sort-Object Length -Descending : ファイルのサイズを降順で表示します。

降順で表示することで、サイズの大きいファイルから順に表示されるため、大きなファイルを特定しやすくなります。サイズの小さいファイルから順に表示したい場合は、-Descendingを削除してください。

Get-ChildItem C:\ -Recurse -Force -ErrorAction SilentlyContinue | 
    Sort-Object Length | 
    Select-Object FullName, @{Name="Size(GB)";Expression={[math]::round($_.Length /1GB, 2)}} -First 20

このように、昇順で表示することで、サイズの小さいファイルから順に表示されるため、必要に応じてファイルを削除または移動することができます。

ファイルの表示単位を変更する

@{Name="Size(GB)";Expression={[math]::round($_.Length /1GB, 2)}} : ファイルのサイズをGB単位で表示します。

この部分を変更することで、ファイルのサイズをKBやMBなどの単位で表示することも可能です。例えば、MB単位で表示する場合は、次のようにします。

Get-ChildItem C:\ -Recurse -Force -ErrorAction SilentlyContinue | 
    Sort-Object Length -Descending | 
    Select-Object FullName, @{Name="Size(MB)";Expression={[math]::round($_.Length /1MB, 2)}} -First 20

このように、ファイルのサイズの単位を変更することで、表示されるサイズの粒度を調整できます。

表示するファイルの数を変更する

-First 20 : 表示するファイルの数を20に設定しています。必要に応じて、表示するファイルの数を変更できます。

例えば、30個のファイルを表示したい場合は、次のようにします。

Get-ChildItem C:\ -Recurse -Force -ErrorAction SilentlyContinue | 
    Sort-Object Length -Descending | 
    Select-Object FullName, @{Name="Size(GB)";Expression={[math]::round($_.Length /1GB, 2)}} -First 30

このように、表示するファイルの数を変更することで、必要な数のファイルを表示できます。