[登録されているタグ]

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

PowerShellでファイルのみ抽出する|Get-ChildItem -File の使い方

📝 はじめに

PowerShellでフォルダ内を一覧表示すると、
「フォルダは除外して、ファイルだけを確認したい」
「処理対象はファイルだけなのに、ディレクトリも混ざってしまう」
と感じたことはありませんか?

そんなときに役立つのが
Get-ChildItem -File です。
フォルダを除外し、ファイルだけを確実に抽出できるため、
実務スクリプトでは非常によく使われます。

こんな場面で便利

  • ファイルだけを一覧表示したい
  • フォルダを除外して処理したい
  • 一括処理の対象をファイルのみにしたい

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

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

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

-File は、
Get-ChildItem の結果から
ファイルだけを抽出するためのパラメーターです。

これにより、ディレクトリが混ざることなく、
ファイル操作に集中した処理を書くことができます。

考え方としては「書類だけを取り出す」と覚えると分かりやすいでしょう。

🧩 基本構文

Get-ChildItem -File

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

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

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

Get-ChildItem -File

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

🔹 指定フォルダのファイルのみを表示

Get-ChildItem C:\Logs -File

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

🛠 よく使われる指定例

🔹 再帰的にファイルのみ取得

Get-ChildItem -File -Recurse

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

🔹 特定の拡張子だけを抽出

Get-ChildItem -File -Filter "*.txt"

テキストファイルのみを一覧表示します。

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

🔹 ファイルだけを一括処理する

Get-ChildItem -File |
ForEach-Object {
    $_.Name
}

🔹 更新日が古いファイルを抽出

Get-ChildItem -File |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) }
組み合わせ例

  • -Recurse と組み合わせて全ファイル取得
  • -Filter で拡張子指定
  • Where-Object で条件絞り込み

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

  • -File を付けないとフォルダも混ざる
  • PowerShell 5.1 以前では使えない
  • -Directory と同時には指定できない
  • -Recurse で対象が増えすぎることがある
  • 拡張子指定は -Filter の方が高速

🔄 cmdとの違いについて

cmd では dir /a-d を使いますが、
PowerShell の Get-ChildItem -File
より直感的で読みやすい指定が可能です。

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

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

  • PowerShell のバージョンが 6 以降か
  • -Recurse で対象が広がりすぎていないか
  • -Filter の指定が正しいか
  • アクセス権限の問題がないか

🧠 注意点

-File
非常に便利ですが、PowerShell 6 以降でのみ使用可能です。
Windows PowerShell 5.1 を使っている場合は、
Where-Object { -not $_.PSIsContainer }
で代替できます。

📌 まとめ

  • -File を使うとファイルのみを安全に抽出できる
  • Where-Object より簡潔で読みやすい
  • 再帰処理や一括処理で特に有効
  • 次は -Directory との使い分けも覚えると便利

🔎 PowerShellコマンドを探す

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

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • ファイルのみを抽出したい
  • フォルダを除外して処理したい
Generic filters

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

Generic filters


Generic filters

Generic filters

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