PowerShell で拡張子のあるファイルを見つける方法
-
PowerShell で拡張子を持つファイルを見つけるために
FilterとともにGet-ChildItemを使用する -
PowerShell で拡張子を持つファイルを見つけるために
IncludeとともにGet-ChildItemを使用する - 結論
PowerShell は、コンピュータ上のファイルやディレクトリを管理するための多用途で強力なツールです。一般的なタスクの一つは、特定の拡張子を持つファイルを見つけることです。
この記事では、PowerShell の Get-ChildItem コマンドレットを使用して、特定の拡張子を持つファイルを効率的に見つける方法を探ります。
PowerShell で拡張子を持つファイルを見つけるために Filter とともに Get-ChildItem を使用する
PowerShell 環境の Get-ChildItem コマンドは、指定された場所からアイテムを取得します。アイテムはコンテナに存在することがあり、コンテナは通常フォルダです。
さらに、Get-ChildItem は -Recurse パラメータを使用して、子コンテナまたはサブコンテナからアイテムを取得します。それには特定の拡張子を持つすべてのファイルを取得するためにアスタリスク(*)ワイルドカードを使用する -Filter パラメータも含まれています。
構文:
Get-ChildItem -Path "File Path" -Recurse -File -Filter *.txt
パラメータ:
-Path "ファイルパス": 特定の拡張子を探す開始ディレクトリを指定します。-Recurse: 検索をサブディレクトリに拡張し、包括的な検索を提供します。-File: ディレクトリではなくファイルに焦点を当て、ファイルのみが返されることを保証します。-Filter *.txt:".txt"拡張子を持つファイルのフィルタを設定します。アスタリスク(*)は".txt"の前の任意の文字に一致します。
例を挙げてみましょう。次のコマンドは、.txt 拡張子を持つすべてのファイルを見つけます。
Get-ChildItem "C:\Files\" -Recurse -File -Filter *.txt
このコマンドでは、"C:\Files"ディレクトリの Get-ChildItem コマンドレットを使用して検索を開始し、その場所内にあるファイルやディレクトリに関する情報を収集します。さらに、検索をすべてのサブディレクトリにも拡張するために、-Recurse パラメータを含めます。
次に、ディレクトリではなくファイルに興味があることを指定するために、-File パラメータを追加します。最後に、-Filter *.txt を使用してフィルタ条件を定義し、アスタリスク(*)がそれに続く任意の文字に一致する".txt"で終わるファイルを探します。
このようにして、PowerShell に".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
出力を見てみると、-Name パラメータを使用してコマンドを実行した後にはファイルの名前とパスのみが表示されていることがわかります。
PowerShell で拡張子を持つファイルを見つけるために Include とともに Get-ChildItem を使用する
Get-ChildItem コマンドは、マッチングアイテムを含めるために 1つ以上の文字列パターンを取る -Include パラメータを使用します。
構文:
Get-ChildItem "File Path" -Recurse -File -Name -Include *.txt
-Path "ファイルパス": 特定の拡張子を持つファイルを探すための検索の開始ディレクトリを指定します。-Recurse: 検索をすべてのサブディレクトリに拡張し、包括的な検索を保証します。-File: 結果からディレクトリを除外し、ファイルにのみ焦点を当てます。-Name: 詳細なファイル情報なしで出力にファイル名のみをリストします。-Include *.txt: 結果に".txt"拡張子を持つファイルをフィルタリングして取得します。
-Recurse フラグなしでファイルパスの末尾にアスタリスク(*)を追加することが必要です。その場合、Files フォルダ内の .txt ファイルのみがリストされます。
Get-ChildItem "C:\Files\*" -File -Name -Include *.txt
このコマンドでは、"C:\Files"ディレクトリ内のファイルを検索するために Get-ChildItem コマンドレットを使用し、すべてのサブディレクトリを対象にします。".txt"拡張子を持つファイルを特定するために、一連のパラメータを適用します。
まず、"C:\Files\*"でパスを設定します。これにより、"C:\Files"のすべてのサブディレクトリが含まれます。-File パラメータを追加することで、ディレクトリを除外してファイルのみに集中します。
-Name パラメータは出力を洗練させ、ファイルの名前のみを表示し、-Include *.txt パラメータは".txt"拡張子を持つファイルをフィルタリングして検索を微調整します。
出力:
file1.txt
file2.txt
file3.txt
出力は、PowerShell コマンドで指定した基準に一致する".txt"拡張子を持つファイル名のリストを示しています。
結論
この記事では、PowerShell で Get-ChildItem コマンドレットを使用してそのようなファイルを見つける効率的な方法を探りました。精度のために -Filter パラメータを使用するアプローチと、柔軟性のために -Include パラメータを使用する 2つのアプローチを取り上げました。
これらの技術は、データ分析や整理などのタスクを簡素化し、Windows 環境でのファイル管理をより効率的にすることができます。