PowerShell で拡張子を持つファイルを検索する

Aamir Khan 2023年12月11日
  1. FilterGet-ChildItem を使用して、PowerShell で拡張子を持つファイルを検索する
  2. IncludeGet-ChildItem を使用して、PowerShell で拡張子を持つファイルを検索する
PowerShell で拡張子を持つファイルを検索する

このチュートリアルでは、PowerShell で Get-ChildItem を使用して、特定の拡張子を持つファイルを検索します。

FilterGet-ChildItem を使用して、PowerShell で拡張子を持つファイルを検索する

PowerShell 環境の Get-ChildItem コマンドは、指定された場所からアイテムを取得します。 アイテムはコンテナーに常駐できます。通常、コンテナーはフォルダーです。

さらに、Get-ChildItem-Recurse パラメータを使用して、子コンテナまたはサブコンテナからアイテムを取得します。 また、アスタリスク ( * ) ワイルドカードを使用して特定の拡張子を持つすべてのファイルを取得する -Filter パラメーターも含まれています。

公式ドキュメント には、すべてのパラメーターがリストされています。 チュートリアルでは、関連するパラメーターのサブセットのみを使用します。

次のコマンドは、.txt 拡張子を持つすべてのファイルを検索します。

Get-ChildItem "C:\Files\"  -Recurse -File -Filter *.txt

出力:

Directory: C:\Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:02 PM              0 file1.txt
-a----         5/15/2022  11:02 PM              0 file2.txt
-a----         5/15/2022  11:02 PM              0 file3.txt

    Directory: C:\Files\Misc files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:05 PM              0 file8.txt

    Directory: C:\Files\More Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:02 PM              0 file4.txt

    Directory: C:\Files\More Files\Some More Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:03 PM              0 file6.txt

Get-ChildItem-Name パラメータを追加して、詳細な出力ではなく、ファイルのパスのみを出力します。

Get-ChildItem "C:\Files\"  -Recurse -File -Name -Filter *.txt

出力:

file1.txt
file2.txt
file3.txt
Misc files\file8.txt
More Files\file4.txt
More Files\Some More Files\file6.txt

IncludeGet-ChildItem を使用して、PowerShell で拡張子を持つファイルを検索する

Get-ChildItem コマンドは -Include パラメーターを使用して、一致するアイテムを含めるために 1つ以上の文字列パターンを取ります。

Get-ChildItem "C:\Files\" -Recurse -File -Name -Include *.txt

- Recurse フラグを使用しない場合、ファイル パスの末尾にアスタリスク (*) を追加する必要があります。 その場合、Files フォルダー内の .txt ファイルのみが一覧表示されます。

Get-ChildItem "C:\Files\*" -File -Name -Include *.txt

出力:

file1.txt
file2.txt
file3.txt

関連記事 - PowerShell File