Windows 11/10 で PowerShell を使用してフォルダー サイズを取得する方法
通常、Windows ベースの PC では、アイテムまたはフォルダーを右クリックし、コンテキスト メニューから [プロパティ] を選択するだけで、アイテムまたはフォルダーのサイズを確認できます。この投稿では、Windows 11/10 でPowerShell を使用してフォルダー サイズを確認または取得する方法を紹介します。
フォルダーを取得する従来の方法の代わりに PowerShell を使用するユース ケースは、アイテムまたはフォルダーのサイズが非常に大きい場合 (たとえば、100 GB を超える場合) です。この場合、従来の方法を使用すると、フォルダーの [プロパティ] ウィンドウにアイテムのサイズが最終的に入力されるまでに時間がかかることがあります。さらに、表示されるのはフォルダーの実際のサイズではない可能性があります。
Windows 11/10 で PowerShell を使用してフォルダー サイズを取得する方法
何らかの理由で、フォルダーのサイズが必要になる場合があります。たとえば、フォルダーを (ローカル ドライブ、外部ドライブ、またはクラウド ストレージの別の場所に) 移動するのにかかる時間または所要時間を見積もるため、またはかなりの場合大きなフォルダーを単純に削除して、ハード ドライブのスペースを解放します。PowerShell を使用して、フォルダー/ディレクトリのサイズを即座に取得できます。このトピックについては、次の小見出しの下で説明します。
- フォルダー サイズを取得する PowerShell コマンド
- フォルダ サイズをバイト、MB、および GB で取得します
- フォルダー サイズを 10 進数で取得する
- 特定のファイル タイプ アイテムのサイズを取得する
- フォルダーとサブフォルダーのサイズを取得する
- 時間フィルターを使用してフォルダーとサブフォルダーのサイズを取得する
- PowerShell スクリプトを使用してすべてのサブディレクトリ フォルダーのサイズを取得する
1]フォルダーサイズを取得するPowerShellコマンド
以下は、フォルダーのサイズを取得するために必要に応じて結果をフィルター処理するために、スイッチとパラメーターと共に使用できる 2 つの主要な PowerShell コマンドレットです。
- Get-ChildItem (エイリアス: GCI) – このコマンドは、サブディレクトリを含む 1 つまたは指定されたディレクトリから情報を取得します。空のディレクトリは表示または表示されません。
- Measure-Object (別名: measure) – このコマンドは、指定されたディレクトリのさまざまなプロパティ (サイズなど) を計算します。
エイリアスはコマンドの代替名であるため、毎回コマンド全体を入力する必要はありません。
2]バイト、MB、およびGBでフォルダーサイズを取得する
フォルダー サイズ (バイト単位) :
Get-ChildItem PathToFolder | Measure-Object -Property Length -sum
フォルダー サイズ (MB) :
(gci PathToFolder | measure Length -s).sum / 1Mb
フォルダー サイズ (GB) :
(gci PathToFolder | measure Length -s).sum / 1Gb
「合計」フィールドには、フォルダのサイズが場合によってはバイト、MB、および GB で表示されます。
3]フォルダーサイズを10進数で取得する
MB および GB 単位のフォルダー サイズの出力は、サイズが小数点以下の桁数が多いため、一見するとあいまいです。したがって、以下のコマンドを実行して、結果を 10 進数で四捨五入できます。「X」を結果を四捨五入する小数点以下の桁数に置き換え、必要に応じて GB または MB を指定します。
"{0:NX} GB"-f ((gci PathToFolder | measure Length -s).sum / 1Gb)
4]特定のファイルタイプのアイテムのサイズを取得する
同じファイル タイプ/拡張子を持つフォルダー内のすべてのアイテムのサイズを取得する場合は、次のコマンドを実行します。それに応じて FileType/Extension プレースホルダーを置き換えます。
(gci PathToFolder *.FileType/Extension | measure Length -s).sum / 1Gb
5]フォルダーとサブフォルダーのサイズを取得する
フォルダーとサブフォルダー (内部の項目を含む) のサイズを取得するには、パラメーター-Recurse
と共に推測で使用されるパラメーターを使用して-ErrorAction SilentlyContinue
、アクセス許可が拒否されたなどのディレクトリ アクセス エラーをバイパスする必要があります。
親ディレクトリとサブディレクトリのサイズを取得するには、以下のコマンドのいずれかを実行できます。
(gci PathToFolder –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb
"{0:NX} GB"-f ((gci –force PathToFolder –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)
このコマンドレットには、非表示のアイテムのサイズも含まれます。
6]時間フィルターでフォルダーとサブフォルダーのサイズを取得する
親フォルダーと子フォルダーのサイズを取得し、フィルターを適用して、特定の日、特定の月、または特定の年に作成されたアイテムのサイズを見つけることもできます。これは、開始日と終了日を指定することで定義できます。これらは、それぞれ-gt
(より大きい) パラメーターと-lt
(より小さい) パラメーターによって定義されます。日付の形式は MM/DD/YY です。
特定の期間に作成されたサブフォルダーを含むフォルダーのサイズを取得するには、次のコマンドを実行します。それに応じて MM/DD/YY プレースホルダーを置き換えます。
(gci -force PathToFolder –Recurse -ErrorAction SilentlyContinue |? {$_.CreationTime -gt ‘MM/DD/YY’ -AND $_.CreationTime -lt ‘MM/DD/YY’}| measure Length -s).sum / 1Gb
また、前述のコマンドを使用してこれらのフィルターを適用し、親フォルダーのみのフォルダー サイズを取得することもできます。
7] PowerShell スクリプトを使用してすべてのサブディレクトリ フォルダーのサイズを取得する
ここで、さらに複雑にするために、フォルダー内の各サブディレクトリのサイズを取得する必要があると仮定しましょう。これは、PowerShell を使用して実現することもできます。もちろん、サブディレクトリ内のアイテムのサイズを含むすべてのサブディレクトリ フォルダーのサイズを取得し、適切な表形式で表示するには、以下のコードを使用して PowerShell スクリプトを作成および実行できます。
$targetfolder='DriveLetter:\'
$dataColl = @()
gci -force $targetfolder -ErrorAction SilentlyContinue |? { $_ -is [io.directoryinfo] } | % {
$len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % { $len += $_.length }
$foldername = $_.fullname
$foldersize= '{0:N2}' -f ($len / 1Gb)
$dataObject = New-Object PSObject
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldername” -value $foldername
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeGb” -value $foldersize
$dataColl += $dataObject
}
$dataColl | Out-GridView -Title “Size of all subdirectories in DriveLetter drive”
それに応じて上記のコードの DriveLetter プレースホルダーを置き換え、PowerShell スクリプトの実行を有効にしてください。
それでおしまい!
Windows でフォルダのサイズを確認する方法はありますか?
フォルダーのサイズを確認する従来の方法は、エクスプローラーを開き、サイズを確認したいファイル、フォルダー、またはドライブを右クリックすることです。表示されるメニューから [プロパティ] を選択すると、ファイル/ドライブの合計サイズが表示されます。同じタスクを実行する従来とは異なる方法は、上記の投稿で説明したように、PowerShell を使用することです。
フォルダとサイズを一覧表示する DOS コマンドは何ですか?
このdir
コマンドは、ファイルとディレクトリに関する情報、および使用可能なディスク容量を表示します。デフォルトでは、このコマンドは、現在のディレクトリ内のすべてのファイルの名前、サイズ、および最終変更時刻を表示します。
コメントを残す