もくじ
📝 はじめに
PowerShellでファイル一覧を取得するとき、
「サブフォルダは見たくない」
「深い階層まで再帰すると情報が多すぎる」
と感じたことはありませんか?
Get-ChildItem には
再帰検索を制御できる -Depth パラメーターがあります。
これを使うことで、指定した深さまでだけ一覧表示することが可能になります。
- カレント配下だけを一覧表示したい
- 1階層・2階層までに制限したい
- 不要な深い再帰検索を避けたい
✅ このコマンドでできること(要点)
- 再帰検索の深さを数値で制御できる
- 必要最小限のファイル一覧を取得できる
- -Recurse と組み合わせて使える
- 処理時間や負荷を抑えられる
✅ Get-ChildItem -Depth でできること
-Depth は、
Get-ChildItem -Recurse と一緒に使うことで、
再帰検索の階層数を制限するためのパラメーターです。
「再帰はしたいが、無制限にはしたくない」
というケースで特に役立ちます。
考え方としては「何階層下まで見るかを決める」と覚えると分かりやすいでしょう。
🧩 基本構文
Get-ChildItem -Recurse -Depth 数値
-Depth は数値で指定し、
0 を指定するとカレント直下のみが対象になります。
▶ 基本的な使い方(まずこれだけ)
🔹 カレント配下のみを表示する(Depth 0)
Get-ChildItem -Recurse -Depth 0
現在のフォルダ直下にあるファイル・フォルダのみが表示されます。
この結果が表示されていれば問題ありません。
🔹 1階層下まで表示する
Get-ChildItem -Recurse -Depth 1
サブフォルダの中身までは表示されますが、
それ以上深い階層は対象外になります。
エラーが出なければ正常に動作しています。
🛠 よく使われる指定例
🔹 フォルダのみを対象にする
Get-ChildItem -Directory -Recurse -Depth 1
カレント配下と、その1階層下にあるフォルダのみを取得します。
🔹 ファイルだけを一覧表示する
Get-ChildItem -File -Recurse -Depth 0
カレントディレクトリ直下のファイルのみを表示します。
💼 実務でよく使う使用例(応用)
🔹 ログフォルダ構成を把握する
Get-ChildItem C:\Logs -Recurse -Depth 1
🔹 処理対象を事前に確認する
Get-ChildItem -Recurse -Depth 0 |
Where-Object { $_.Extension -eq ".txt" }
- -File / -Directory で対象限定
- Where-Object で条件絞り込み
- Sort-Object で並び替え
🧩 よくある勘違い・つまずきポイント
- -Depth は -Recurse とセットで使う
- -Depth だけ指定しても再帰は行われない
- PowerShell 5.1 では使用できない
- 深い階層でも 0 は「直下のみ」
- 大量ファイルでも処理負荷を抑えられる
🔄 cmdとの違いについて
cmd の dir では
階層制御が難しいですが、
PowerShell の Get-ChildItem -Depth は
再帰範囲を明確に指定できます。
大規模フォルダの調査で特に差が出ます。
⚠ エラー・うまく動かないときの確認ポイント
- PowerShell のバージョンが 6 以降か
- -Recurse を指定しているか
- -Depth の数値が正しいか
- 対象フォルダが存在しているか
🧠 注意点
-Depth は
Windows PowerShell 5.1 では使えません。
利用する場合は PowerShell 6(Core)以降であることを
事前に確認しましょう。
📌 まとめ
- -Depth を使うと再帰検索の範囲を制御できる
- Depth 0 はカレント配下のみを対象にする
- 不要な深い検索を避けられる
- 次は -File / -Directory と組み合わせると便利
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- カレント配下だけを一覧表示したい
- 再帰検索の深さを制御したい
