落とし穴指差し

はまりポイントガーン

 

Powershell の Get-ChildItem コマンドを使用して任意のディレクトリからファイルやディレクトリの一覧を取得する場合

よくある落とし穴について

極めて重要愛

 

任意のディレクトリの子アイテム一覧を取得するには、Path パラメータLiteralPath パラメータを使用します。

Path パラメータはワイルドカード指定ができるのに対して、LiteralPath パラメータは入力された文字がそのまま解釈されるという違いがあります。

 

丸ブルーPath パラメータによる一覧取得

任意のディレクトリのファイル一覧を取得するには、以下の書式を使用します。

Get-ChildItem -Path ディレクトリパス

ワイルドカードによるアイテムの取得

contract_20030621.txt、contract_20131001.txt のようにプレフィックスが同じファイルが複数ある場合、以下のようにワイルドカードを指定してファイルの一覧を取得することができます。

Get-ChildItem -Path contract_*.txt

 

丸レッドLiteralPath パラメータによる一覧取得

任意のディレクトリのファイル一覧を取得するには、以下の書式を使用します。

Get-ChildItem -LiteralPath ディレクトリパス

C:¥workspace の一覧を取得したい場合は、以下のようにします。

Get-ChildItem -LiteralPath C:\workspace

 

秘密Path パラメータと LiteralPath パラメータの違いについて

ファイル名やディレクトリ名には [] を使用することができます

contract[20030621].txt というファイルを作成することができます

このファイルを以下のようなコマンドで取得しようとしても、ヒットしません。

get-ChildItem -Path C:¥workspace¥contract[20030621].txt

Path パラメータを使用すると []が正規表現として認識されてしまうことが原因です

正規表現を使用しないのであれば、LiteralPath パラメータを使用しましょう。

get-ChildItem -LiteralPath C:¥workspace¥contract[20030621].txt