Windowsコマンドプロンプトでフォルダのサイズを確認する方法

結論:コマンドプロンプトだけでフォルダ内の合計ファイルサイズを確認するなら、dir /a /s /-c "C:\Data" を実行し、最後に表示されるファイル数と合計バイトを見ます。ただし、アクセスできないファイルは集計されず、tree /f はファイル名を表示するだけで容量は計算しません。見やすい単位で正確に合計するならPowerShellの Get-ChildItem -File -Recurse と Measure-Object Length -Sum、ディスク上の使用量まで見たいならMicrosoft SysinternalsのDuを使い分けるのが確実です。 最新の画面名や提供条件は更新で変わるため、以下の順番で確認してください。

目次

最初に確認するポイント

症状・条件主な原因最初の確認
dir /sの結果が長く、どこが合計か分からないdirは各サブフォルダの一覧を出した後、最後に全体のファイル数と累積サイズを表示します。出力の最終行付近にあるファイル数とバイト数を確認し、解析しやすくする場合は /-c で桁区切りを外します。
tree /fを実行してもファイルサイズが出ないtreeはディレクトリ構造を表示するコマンドで、/f はファイル名を追加表示するだけです。容量計算はdir、PowerShell、またはSysinternals Duへ切り替えます。
PowerShellの合計がエクスプローラーのプロパティと合わない隠しファイル、アクセス拒否、再解析ポイント、ハードリンク、論理サイズとディスク上のサイズの違いが考えられます。-Force の有無とエラー出力を確認し、論理バイトかディスク上の使用量か、比較している指標をそろえます。
大きなフォルダの計測に時間がかかる、または止まったように見えるすべてのサブフォルダとファイルを列挙するため、ネットワーク共有、多数の小ファイル、低速ディスクでは時間がかかります。小さいサブフォルダでコマンドを確認し、対象を絞るか、Sysinternals Duで階層深度を指定します。

安全な対処手順

1. まず「サイズ」の意味を決める

フォルダサイズには、各ファイルの論理的な長さを合計した値と、圧縮、スパースファイル、クラスター単位、ハードリンクなどを反映したディスク上の使用量があります。dirと一般的なPowerShell集計は主にファイルのLength合計を確認する方法です。ディスク上の占有量まで比較したい場合は、Sysinternals DuのDirectorySizeOnDiskを利用できるCSV出力が向いています。

  1. バックアップ対象の総データ量なら論理サイズを確認します。
  2. 空き容量不足の調査ならディスク上の使用量も確認します。
  3. 同じ指標、同じ権限、同じ時点で比較します。

注意:計測中にファイルが増減すると、複数の方法で結果が一致しないことがあります。

2. コマンドプロンプトのdirで合計バイトを確認する

コマンドプロンプトを開き、対象パスを引用符で囲んで dir /a /s /-c を実行します。/s はサブフォルダを含め、/a は隠し・システム属性を含む項目を表示し、/-c は数値の桁区切りを外します。最後に表示されるファイル数と累積バイトが対象ツリーの合計です。画面が長い場合はファイルへリダイレクトして末尾を確認できます。

  1. 空白を含むパスは必ず引用符で囲みます。
  2. 最後の全体集計と、途中の各フォルダ集計を取り違えないようにします。
  3. アクセス拒否が表示されたフォルダの中身は合計に含まれません。
dir /a /s /-c "C:\Data"
dir /a /s /-c "C:\Data" > "C:\Temp\dir-size.txt"

注意:出力の「File(s)」をfindで抽出する例は表示言語に依存します。日本語Windowsと英語Windowsの両方で動かすバッチでは、文字列固定の解析を避けてください。

3. PowerShellで合計をGiB表示する

PowerShellでは、ファイルだけを再帰列挙し、Lengthプロパティを合計できます。-LiteralPath を使うと角括弧などを含むパスをワイルドカードとして誤解しにくく、-Force で隠し項目も対象にできます。ただしForceはセキュリティ制限を回避しません。エラーが出た項目は合計から漏れるため、メッセージを無視せず確認してください。

  1. -File でフォルダオブジェクトを除外します。
  2. -Recurse で配下を列挙します。
  3. Measure-Object -Property Length -Sum で論理バイトを合計します。
  4. PowerShell 7は既定でディレクトリのシンボリックリンク先へ再帰しません。
$bytes = 0 + (Get-ChildItem -LiteralPath "C:\Data" -File -Recurse -Force -ErrorAction Continue | Measure-Object -Property Length -Sum).Sum
"{0:N2} GiB ({1:N0} bytes)" -f ($bytes / 1GB), $bytes

注意:-ErrorAction SilentlyContinue だけを付けるとアクセス拒否を見落とし、少ない値を正しい合計だと誤認しやすくなります。

4. Sysinternals Duで階層別とディスク上の使用量を調べる

Microsoft SysinternalsのDuは、指定ディレクトリの使用量を再帰的に集計する公式ツールです。単純な合計は対象パスだけを指定し、直下のサブフォルダ比較には -l 1 を使います。CSV出力ではDirectorySizeとDirectorySizeOnDiskを分けて取得できるため、論理サイズと実使用量の差を調べる用途にも向きます。

  1. Microsoft Sysinternals公式ページから取得します。
  2. -nobanner でバナーを省きます。
  3. -l 1 で直下階層までの内訳を確認します。
  4. ハードリンクを各出現ごとに数える必要がある場合だけ -u の意味を確認して使います。
du.exe -nobanner "C:\Data"
du.exe -nobanner -l 1 "C:\Data"
du.exe -nobanner -c "C:\Data"

注意:LinuxやWSLのduと同名ですが、Sysinternals Duはオプションと出力形式が異なります。混同しないでください。

5. WSLのduは既にWSLを使っている場合だけ選ぶ

WSLが導入済みなら、Windowsドライブを /mnt/c などのパスで参照し、Linuxの du -sh を使えます。WSL未導入のPCでフォルダ容量を見るだけなら、管理者PowerShellで wsl --install を実行してUbuntuを追加し再起動するより、dir、PowerShell、Sysinternals Duの方が軽量です。

  1. 既存WSL環境ではWindowsパスをLinux形式へ読み替えます。
  2. 空白を含むLinuxパスは引用符で囲みます。
  3. WSLのマウントと権限のため、Windows側ツールと値が異なる場合があります。
wsl du -sh /mnt/c/Data
wsl du -sh "/mnt/c/Users/name/My Folder"

注意:wsl --install はオプション機能と既定のLinuxディストリビューションを追加し、再起動を求めることがあります。容量確認だけを目的に安易に実行しません。

よくある質問

tree /fでフォルダサイズを確認できますか?

できません。Microsoftの仕様では、treeはディレクトリ構造を表示し、/f は各ディレクトリ内のファイル名を追加表示するオプションです。ファイルサイズの合計は表示しないため、dir /s、PowerShell、またはSysinternals Duを使ってください。

dir /sとPowerShellの結果が違うのはなぜですか?

隠し・システム項目を含めたか、アクセス拒否があったか、再解析ポイントやシンボリックリンクをたどったか、計測中にファイルが変化したかを確認します。dirでは /a、PowerShellでは -Force を付けてもアクセス権は越えられません。両方のエラー表示を確認して比較してください。

フォルダのプロパティとコマンド結果のどちらが正しいですか?

どちらも条件によって正しい可能性があります。ファイルのLength合計とディスク上の占有量は、圧縮、スパースファイル、ハードリンク、クラスターサイズにより一致しません。何を判断したいかを決め、論理サイズならPowerShell、占有量も含めるならSysinternals DuのCSV出力など、指標を明示して使います。

公式情報

画面や仕様が異なる場合は、利用中の製品・契約・管理ポリシーを確認したうえで公式情報を参照してください。

まとめ

原因を一つずつ切り分け、変更前の状態と結果を記録しながら進めることが重要です。操作後は同じ症状が再発しないか確認し、組織管理の端末ではポリシー変更を管理者へ確認してください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次