PowerShell でファイルのフルパスを取得する
-
PowerShell で
Get-ChildItem
を使用してファイルのフルパスを取得する -
PowerShell で
Select-Object
を使用してファイルのフルパスを取得する -
PowerShell で
Format-Table
を使用してファイルのフルパスを取得する -
PowerShell で
foreach
ループを使用してファイルのフルパスを取得する
PowerShell には、システム上のファイルを管理するためのさまざまな cmdlet
があります。PowerShell を使用して、ファイルの作成、コピー、移動、名前の変更、および削除を行うことができます。
ファイルを検索して、PowerShell でファイルの存在を確認することもできます。ファイルパスは、システム上のファイルの場所を示します。このチュートリアルでは、PowerShell でファイルのフルパスを取得するためのさまざまな方法を紹介します。
PowerShell で Get-ChildItem
を使用してファイルのフルパスを取得する
Get-ChildItem
コマンドレットは、指定された場所にあるファイルとディレクトリのリストを表示します。-Recurse
パラメータを使用して、すべてのファイルとディレクトリを再帰的に一覧表示できます。
また、サブディレクトリとそのファイルも表示されます。PowerShell での再帰的なファイル検索に役立ちます。
再帰的なファイル検索の例を次に示します。
Get-ChildItem -Path C:\New -Filter test.txt -Recurse
上記のコマンドは、ファイル test.txt
を C:\New
に再帰的に検索します。指定された場所内のすべてのディレクトリとサブディレクトリをチェックし、見つかった場合はファイルの詳細を表示します。
出力:
Directory: C:\New\complex
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 12/16/2021 7:29 AM 198 test.txt
ご覧のとおり、ファイル test.txt
はディレクトリ C:\New\complex
にあります。ファイルの Path
、Mode
、LastWriteTime
、Length
、Name
が表示されます。
コマンドを%{$_.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
には、組み込みのエイリアス ls
、dir
、および 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