PowerShell でファイルのフルパスを取得する方法
-
Get-ChildItem
を使用して PowerShell でファイルのフルパスを取得する -
Select-Object
を使用して PowerShell でファイルのフルパスを取得する -
Format-Table
を使用して PowerShell でファイルのフルパスを取得する -
foreach
ループを使用して PowerShell でファイルのフルパスを取得する -
Format-List
を使用して PowerShell でファイルのフルパスを取得する - 結論

PowerShell には、システム上のファイルを管理するためのさまざまなコマンドレットがあります。PowerShell を使用してファイルを作成、コピー、移動、名前変更、および削除できます。
また、ファイルを検索したり、PowerShell でファイルの存在を確認したりできます。ファイルパスは、システム上のファイルの場所を示します。
このチュートリアルでは、PowerShell でファイルのフルパスを取得するためのさまざまな方法を紹介します。
Get-ChildItem
を使用して PowerShell でファイルのフルパスを取得する
Get-ChildItem
コマンドレットは、指定された場所にあるファイルおよびディレクトリのリストを表示します。-Recurse
パラメーターを使用すると、すべてのファイルとディレクトリを再帰的にリスト表示できます。
これにより、サブディレクトリとそのファイルも表示されます。これは、PowerShell での再帰的なファイル検索に役立ちます。
このアプローチは、フォルダー階層に広がるファイルのセットに対して操作を実行する必要があるシナリオで一般的に使用されます。たとえば、ファイルの検索、バッチ処理、またはデータの整理タスクなどです。
例:
Get-ChildItem -Path C:\ExampleDirectory -Filter *.txt -Recurse
最初に、-Path C:\ExampleDirectory
を使用してルートディレクトリを指定します。この選択により、検索の出発点が設定され、正しい場所を探していることが確認できます。
次に、-Filter *.txt
パラメーターを導入します。これは、.txt
拡張子を持つファイルのみを検索するために検索を大幅に絞り込むための戦略的な手段です。
これにより、無関係な多数のファイルを効率的にスキップし、スクリプトがより集中し、実行が迅速になります。
スクリプトの本当のゲームチェンジャーは -Recurse
パラメーターです。これは、PowerShell のディレクトリ構造を深く掘り下げる能力を活用する場所です。
-Recurse
を使用することで、私たちは C:\ExampleDirectory
の表面をなでるだけでなく、すべての隅々やすべてのサブディレクトリを探索し、どれだけ深くネストされていても探索します。
出力:
ファイルのフルパスを取得するには、コマンドを%{$_.FullName}
にパイプして実行できます。
例:
Get-ChildItem -Path ExampleDirectory\ -Filter sample.txt -Recurse | % { $_.FullName }
出力:
または、このコマンドを使用して、指定された場所にある .txt
拡張子を持つすべてのファイルとそのパスを取得できます。
例:
Get-ChildItem -Path ExampleDirectory\ -Recurse | where { $_.extension -eq ".txt" } | % { $_.FullName }
出力:
Select-Object
を使用して PowerShell でファイルのフルパスを取得する
同様の方法が使用されますが、ファイルのフルパスを取得するために Get-ChildItem
コマンドとともに Select-Object
コマンドレットを使用します。
Select-Object
コマンドレットは、オブジェクトまたはオブジェクトのセットの指定されたプロパティを選択します。この技法は、ファイルシステムの監査、データ管理、またはクリーンアップ操作を行う必要があるシナリオで特に役立ちます。
例:
Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Select-Object -ExpandProperty FullName
このスクリプトで、私たちは Get-ChildItem
と Select-Object
の組み合わせの力を利用して、.txt
ファイルを効率的に見つけてリストします。ExampleDirectory\
から検索を開始し、すべての関連サブディレクトリを含むことを保証します。
-Filter *.txt
は重要なコンポーネントで、.txt
ファイルにのみ焦点を絞ることができ、検索を合理化します。
-Recurse
を使用することで、私たちは表面的な操作をするだけでなく、すべてのサブディレクトリの深い部分に掘り下げて、見落とされるファイルがないことを確認します。魔法は| Select-Object -ExpandProperty FullName
で起こります。これにより、出力が必須の情報に絞られます—ファイルのフルパスのみを表示します。
出力:
Format-Table
を使用して PowerShell でファイルのフルパスを取得する
同様に、Format-Table
を使用して PowerShell でファイルのフルパスを取得できます。Format-Table
コマンドレットは、オブジェクトの選択されたプロパティを持つ出力をテーブル形式にフォーマットします。
Get-ChildItem
コマンドレットは、Format-Table
と組み合わせることで、ファイルパスを取得するだけでなく、整理された読みやすい形式で表示するための強力なツールになります。この方法は、ファイルシステムの構造を迅速に評価および報告する必要がある人々に特に便利です。
例:
Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-Table FullName
このスクリプトでは、戦略的に Get-ChildItem
を使用して、ExampleDirectory\
とそのサブディレクトリをスキャンし、.txt
ファイルを探しています。-Filter *.txt
パラメーターは重要で、検索を対象に集中させて無関係なファイルタイプを無視するようにします。
-Recurse
フラグは徹底的な検索に不可欠で、すべてのサブディレクトリが探索されることを保証します。
検索の後、| Format-Table FullName
を使用して、私たちの発見を整理されたテーブルに変換します。これにより、読みやすさが向上し、フルパスの明確で構造的なビューを提供します。
出力:
foreach
ループを使用して PowerShell でファイルのフルパスを取得する
foreach
ループは、PowerShell では foreach
ステートメントとしても知られています。それは、配列、オブジェクト、文字列、数値などのコレクション内の一連の値をループするための言語構文です。
foreach
ループ内の各アイテムに対して 1つ以上のコマンドを実行できます。
例:
Get-ChildItem -Path ExampleDirectory\*.txt -Recurse | foreach { "$_" }
このスクリプトでは、Get-ChildItem
を使用して ExampleDirectory\
内の .txt
ファイルを綿密に検索します。
-Recurse
を含めることで、すべてのサブディレクトリを網羅する包括的な検索が保証されます。遭遇した各ファイルは、次に foreach
ループにパイプで送られます。
このループ内で、$_
は現在のファイルのプレースホルダーとして機能します。$_
を引用符で囲み、それを出力することで、PowerShell に各ファイルのフルパスを表示させるよう指示します。
このアプローチは、単にデータを取得するだけでなく、各ファイルを通しての体系的な散策であり、ループ内でより複雑な操作を追加する柔軟性を提供します。
出力:
上記のコマンドは -Filter
パラメーターでは機能しません。中間で Get-Item
コマンドレットにパイプすることで、-Filter
パラメーターを使用できます。
例:
Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Get-Item | foreach { "$_" }
パイプラインで Get-Item
を追加することは重要なステップであり、-Filter
パラメーターを効果的に利用できるようにし、.txt
ファイルのみが処理されることを保証します。
出力:
Get-ChildItem
には、ls
、dir
、および gci
の組み込みエイリアスがあります。上記のすべてのコマンドは、Get-ChildItem
コマンドレットの代わりに任意のハンドルを使用して実行できます。
例:
gci -Path ExampleDirectory\ -Filter *.txt -Recurse | % { $_.FullName }
エイリアスを使用することで、このコマンドは大幅に簡潔になり、機能性を維持します。異なるバックグラウンド(Unix/Linux や古い Windows コマンドラインなど)から来ているユーザーには、ls
や dir
の方がより親しみやすいと感じるかもしれません。
出力:
Format-List
を使用して PowerShell でファイルのフルパスを取得する
Get-ChildItem
コマンドレットは、ファイルやディレクトリについての情報を参照および取得するために多用途です。-Filter
パラメーターを使用することで、特定のタイプのファイル(たとえば .txt
ファイル)を対象にすることができます。
一方、Format-List
はオブジェクトのプロパティをリスト形式で表示します。Get-ChildItem
と組み合わせることで、ファイルパスを明確で読みやすいリストとして表示するために利用できます。
例:
Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-List FullName
私たちのコードでは、Get-ChildItem
を使用して ExampleDirectory\
とそのサブディレクトリ(-Recurse
)内を徹底的に検索し、.txt
拡張子のファイル(-Filter *.txt
)を探しています。発見された各ファイルは、パイプライン(|
)を介して Format-List
コマンドレットにシームレスに転送されます。
私たちは各ファイルの FullName
プロパティを抽出することに焦点を当て、これがそのフルパスを表します。この方法は、ファイルパスの整理された読みやすいリストを作成するのに特に効果的です。
出力:
結論
最後に、PowerShell は効率的なファイル管理のために豊富なコマンドレットを提供しています。この記事では、特に Get-ChildItem
コマンドレットを他のコマンドレット(Format-List
、Select-Object
、Format-Table
など)と組み合わせて、ファイルのフルパスを取得するさまざまな方法を探りました。
これらの技法は、ファイルシステムの監査、データ管理、バッチ処理を含むタスクにおいて非常に貴重です。私たちが議論した各方法は、特定のファイルタイプをフィルターするためのものや、整形されたテーブルでパスをリストするもの、foreach
ループでファイルを反復処理するためのものなど、ファイルパスを処理する独自のアプローチを提供します。
PowerShell の専門知識を深めようとしている読者にとって、次のステップは、より高度なファイル操作技術を探求し、オートメーションのための PowerShell スクリプティングを掘り下げたり、他のツールやスクリプトと PowerShell コマンドを統合して、より複雑なワークフローを実現することかもしれません。