PowerShellは、リモートコンピューターのシャットダウンや再起動、Windows更新プログラムのインストール、ファイルのコピー、ファイルの削除、ファイルサイズの表示など、さまざまな作業を行うことができる強力なWindowsコマンドラインシェル・スクリプティング環境ツールです。
しかし、多くの初心者はもちろんのこと、ベテランユーザーでさえもPowerShellの使い方をよく存じていません。今回は、PowerShellでファイルサイズを取得する方法と、代替ツールをご紹介します。このまま読み進めて、詳しい方法を見ていきましょう。
関連記事: Windows 10/11のコマンドプロンプトでpingを打つ方法
PowerShellでフォルダサイズを取得できる?
PowerShellでフォルダサイズを取得することは可能です。指定ディレクトリ内のフォルダサイズやファイルサイズを取得するのに役立つ、さまざまなPowerShellコマンドレットがあります。今回はフォルダサイズを取得するためのコマンドレットをまとめました。
- Get-ChildItem(GCIエイリアス): PowerShellでフォルダサイズを取得する際に、最もよく使われるコマンドレットです。特定のディレクトリにあるファイルやフォルダのサイズを一覧表示します。1つまたは複数のディレクトリ内のすべての項目を取得できますが、空のディレクトリは表示されません。
- Measure-Object(measureエイリアス): 主にオブジェクトのプロパティ値に対する計算を実行する際に使用されるコマンドレットです。現在のディレクトリ内にあるすべてのファイル・フォルダの最小サイズ・最大サイズ・合計サイズを表示します。
- Select-Object(selectエイリアス): オブジェクトまたはオブジェクトセットで、特定のプロパティを選択する際に使用するコマンドレットです。ファイルサイズやフォルダサイズの結果で、バイトをメガバイトに変換して表示することができます。
ディレクトリサイズを取得するコマンドレットについてご理解いただいたところで、Windows 10/11のPowerShellでファイルサイズやフォルダサイズを取得する方法について見ていきましょう。
Windows 10/11のPowerShellでフォルダサイズを取得する方法
Windows 10/11のPowerShellでフォルダサイズを取得するために、どのような方法を使用すれば良いかは状況によって異なります。ここでは、PowerShellでのディレクトリサイズ取得に関連する最も一般的な例をまとめました。
検索ボックスに「powershell」と入力し、「Windows PowerShell」を右クリックして「管理者として実行」と「はい」をクリックすると、管理者権限のPowerShellが開きます。その後、次のコマンドでディレクトリ内のフォルダサイズ・ファイルサイズを一覧表示します。
例1: 特定のディレクトリにあるフォルダのサイズを取得する
特定のディレクトリにあるファイルやフォルダのサイズを取得するには、次のコマンドを使用します。例えば、C:Windows10Upgradeのフォルダの場合は、「Get-ChildItem C:Windows10Upgrade | Measure-Object -Property Length -sum」を実行します。
Get-ChildItem folder path | Measure-Object -Property Length -sum
合計ファイルサイズをMBやGBで表示したい場合は、次のコマンドを実行します。
(gci C:Windows10Upgrade | measure Length -s).sum / 1Mb
(gci C:Windows10Upgrade | measure Length -s).sum / 1Gb
小数点第2位以下を切り捨てて表示したい場合は、次のコマンドを実行します。
“{0:N2} GB” -f ((gci C:Windows10Upgrade | measure Length -s).sum / 1Gb)
例2.ディレクトリ内の特定の種類のファイルサイズを取得する
.exeファイルすべての合計サイズを取得するには、次のコマンドを実行します。 exeの部分は、isoやxlsxなど他の拡張子に置き換えることが可能です。
(gci c:exe *.exe | measure Length -s).sum / 1Mb
例3.サブフォルダやサブディレクトリを含むディレクトリサイズを取得する
サブフォルダやサブディレクトリを含むディレクトリ内のすべてのファイルの合計サイズを取得するには、「–Recurse」というコマンドレットを使用します。例えば、C:Windows10Upgradeにある全ファイルの合計サイズを取得するには、次のコマンドを実行します。
“{0:N2} GB” -f ((gci –force C:Windows10Upgrade –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)
例4.リモートコンピューターのフォルダサイズを取得する
Invoke-commandは、リモートコンピューター上にあるフォルダやファイルのサイズを取得するのに使用します。computernameは、実際にお使いのリモートコンピューターの名前に置き換えて下さい。
Invoke-Command -ComputerName hq-srv01 -ScriptBlock ${Function:Get-FolderSize} –ArgumentList ‘C:PS’
PowerShellより優れたフォルダサイズ取得の方法
上記の内容から、PowerShellはディレクトリ内のファイル・フォルダ・サブフォルダのサイズを一覧表示するのに役立つツールであることがお分かりいただけたかと思います。しかし、コマンドレットに慣れていない方にとっては時間がかかり、複雑です。さらには、「パスが見つかりません」「スクリプトの実行が無効」などといったエラーが表示されることもあります。
PowerShell以外に、フォルダサイズを取得するのに役立つツールはあるのでしょうか?もちろんあります。MiniTool Partition Wizardはそのような目的に使用できます。「ディスク使用状況分析」は、さまざまなドライブのファイルやフォルダ、ディレクトリのサイズをすばやく分析します。
また、名前や種類でファイルを検索することも可能です。ハードドライブやCドライブが満杯になっている場合、どのファイルがディスク容量を占有しているかを知ることができるので、空き容量を確保するのに役立ちます。