PowerShell でファイルのフルパスを取得する

Rohan Timalsina 2023年1月30日
  1. PowerShell で Get-ChildItem を使用してファイルのフルパスを取得する
  2. PowerShell で Select-Object を使用してファイルのフルパスを取得する
  3. PowerShell で Format-Table を使用してファイルのフルパスを取得する
  4. PowerShell で foreach ループを使用してファイルのフルパスを取得する
PowerShell でファイルのフルパスを取得する

PowerShell には、システム上のファイルを管理するためのさまざまな cmdlet があります。PowerShell を使用して、ファイルの作成、コピー、移動、名前の変更、および削除を行うことができます。

ファイルを検索して、PowerShell でファイルの存在を確認することもできます。ファイルパスは、システム上のファイルの場所を示します。このチュートリアルでは、PowerShell でファイルのフルパスを取得するためのさまざまな方法を紹介します。

PowerShell で Get-ChildItem を使用してファイルのフルパスを取得する

Get-ChildItem コマンドレットは、指定された場所にあるファイルとディレクトリのリストを表示します。-Recurse パラメータを使用して、すべてのファイルとディレクトリを再帰的に一覧表示できます。

また、サブディレクトリとそのファイルも表示されます。PowerShell での再帰的なファイル検索に役立ちます。

再帰的なファイル検索の例を次に示します。

Get-ChildItem -Path C:\New -Filter test.txt -Recurse

上記のコマンドは、ファイル test.txtC:\New に再帰的に検索します。指定された場所内のすべてのディレクトリとサブディレクトリをチェックし、見つかった場合はファイルの詳細を表示します。

出力:

    Directory: C:\New\complex


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        12/16/2021   7:29 AM            198 test.txt

ご覧のとおり、ファイル test.txt はディレクトリ C:\New\complex にあります。ファイルの PathModeLastWriteTimeLengthName が表示されます。

コマンドを%{$_.FullName} にパイプすることで、ファイルのフルパスを取得できます。

Get-ChildItem -Path C:\New -Filter test.txt -Recurse | %{$_.FullName}

出力:

C:\New\complex\test.txt

*.txt-Filter パラメーターとともに使用して、C:\New の場所に .txt 拡張子を持つすべてのファイルを取得できます。

Get-ChildItem -Path C:\New -Filter *.txt -Recurse | %{$_.FullName}

出力:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt

または、このコマンドを使用して、.txt 拡張子を持つすべてのファイルと、指定された場所にあるそれらのパスを取得できます。

Get-ChildItem -Path C:\New -Recurse | where {$_.extension -eq ".txt"} | %{$_.FullName}

PowerShell で Select-Object を使用してファイルのフルパスを取得する

同様の方法が使用されますが、Select-Object コマンドレットと Get-ChildItem コマンドを使用して、PowerShell のファイルのフルパスを取得します。Select-Object コマンドレットは、オブジェクトまたはオブジェクトのセットの指定されたプロパティを選択します。

Get-ChildItem -Path C:\New -Filter *.txt -Recurse | Select-Object -ExpandProperty FullName

出力:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt

PowerShell で Format-Table を使用してファイルのフルパスを取得する

同様に、Format-Table を使用して、PowerShell のファイルのフルパスを取得できます。Format-Table コマンドレットは、オブジェクトの選択されたプロパティを使用して出力をテーブルとしてフォーマットします。

Get-ChildItem -Path C:\pc -Filter car.png -Recurse | Format-Table FullName

出力:

FullName
--------
C:\pc\computing\task4\car.png

PowerShell で foreach ループを使用してファイルのフルパスを取得する

foreach ループは、PowerShell では foreach ステートメントとも呼ばれます。これは、配列、オブジェクト、文字列、数値などのコレクション内の一連の値をループするための言語構造です。foreach ループ内の配列内の各アイテムに対して 1つ以上のコマンドを実行できます。

foreach ループを使用して PowerShell のファイルのフルパスを取得する方法は次のとおりです。

Get-ChildItem -path C:\New\*.txt -Recurse | foreach { "$_" }

出力:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt

上記のコマンドは、-Filter パラメーターでは機能しません。中央の Get-Item コマンドレットにパイプして、-Filter パラメーターを使用できます。

Get-ChildItem -Path C:\New -Filter *.txt -Recurse | Get-Item | foreach { "$_" }

出力:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt

Get-ChildItem には、組み込みのエイリアス lsdir、および gci があります。Get-ChildItem コマンドレットの代わりにハンドルを使用すると、上記のすべてのコマンドを実行できます。

例えば:

gci -Path C:\New -Filter *.txt -Recurse | %{$_.FullName}

出力:

C:\New\complex\test.txt
C:\New\record\book.txt
C:\New\record\data.txt
著者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

関連記事 - PowerShell File