[登録されているタグ]

[記事公開日]2025/12/18

PowerShellでフォルダのみ抽出する|Get-ChildItem -Directory の使い方

📝 はじめに

PowerShellでフォルダ構成を確認していると、
「ファイルはいらないので、フォルダだけを一覧で見たい」
「ディレクトリ単位で処理したいのに、ファイルが混ざってしまう」
と感じることはありませんか?

そんなときに便利なのが
Get-ChildItem -Directory です。
これを使うことで、フォルダ(ディレクトリ)だけを確実に抽出できます。

こんな場面で便利

  • フォルダ構成だけを把握したい
  • ディレクトリ単位で処理を行いたい
  • 不要なファイルを除外したい

✅ このコマンドでできること(要点)

  • ファイルを除外してフォルダのみ取得できる
  • Where-Object を使わず簡潔に書ける
  • -Recurse と組み合わせて再帰的に取得できる
  • スクリプトの可読性が向上する

✅ Get-ChildItem -Directory でできること

-Directory は、
Get-ChildItem の結果から
フォルダ(ディレクトリ)だけを抽出するためのパラメーターです。

これにより、ファイルが混ざることなく、
フォルダ構成やディレクトリ単位の処理に集中できます。

考え方としては「棚の中から箱だけを取り出す」と覚えると分かりやすいでしょう。

🧩 基本構文

Get-ChildItem -Directory

パスを省略した場合は、現在の作業ディレクトリが対象になります。

▶ 基本的な使い方(まずこれだけ)

🔹 カレント配下のフォルダのみを表示する

Get-ChildItem -Directory

フォルダだけが表示されていれば成功です。
ファイルが含まれていなければ問題ありません。

🔹 指定フォルダの直下フォルダのみを表示

Get-ChildItem C:\Projects -Directory

指定フォルダ直下にあるフォルダだけが一覧表示されます。
エラーが出なければ正常に動作しています。

🛠 よく使われる指定例

🔹 再帰的にフォルダのみ取得

Get-ChildItem -Directory -Recurse

サブフォルダを含め、すべてのフォルダを対象にします。

🔹 名前でフォルダを絞り込む

Get-ChildItem -Directory -Filter "202*"

名前が 202 で始まるフォルダのみを取得します。

💼 実務でよく使う使用例(応用)

🔹 フォルダ単位で処理を実行する

Get-ChildItem -Directory |
ForEach-Object {
    $_.FullName
}

🔹 空のフォルダを探す

Get-ChildItem -Directory |
Where-Object { (Get-ChildItem $_.FullName).Count -eq 0 }
組み合わせ例

  • -Recurse で階層全体を対象にする
  • -Filter でフォルダ名を限定
  • Where-Object で条件判定

🧩 よくある勘違い・つまずきポイント

  • -Directory を付けないとファイルも混ざる
  • -File と同時には指定できない
  • PowerShell 5.1 以前では使用できない
  • -Recurse で対象が多くなりすぎることがある
  • アクセス権限のないフォルダでエラーが出る場合がある

🔄 cmdとの違いについて

cmd では dir /ad を使いますが、
PowerShell の Get-ChildItem -Directory
より直感的で読みやすく指定できます。

結果をオブジェクトとして扱える点も大きな違いです。

⚠ エラー・うまく動かないときの確認ポイント

  • PowerShell のバージョンが 6 以降か
  • -Recurse による探索範囲が広すぎないか
  • 対象フォルダのアクセス権限があるか
  • -Filter の指定が正しいか

🧠 注意点

-Directory
フォルダ専用の指定のため、
Windows PowerShell 5.1 を使用している場合は利用できません。
その場合は
Where-Object { $_.PSIsContainer }
で代替できます。

📌 まとめ

  • -Directory を使うとフォルダのみを抽出できる
  • フォルダ構成の確認や一括処理に便利
  • -Recurse と組み合わせると強力
  • 用途に応じて -File と使い分けるのがポイント

🔎 PowerShellコマンドを探す

やりたいことからコマンドを探すこともできます。

  • フォルダのみを抽出したい
  • 一覧を表示したい
  • 条件で絞り込みたい
  • 再帰的にフォルダを調査したい
  • エラーや実行できない原因を調べたい
  • ディレクトリ構成を把握したい
  • 空フォルダを探したい
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る