about_Path_Syntax
簡単な説明
PowerShell の完全パス形式と相対パス形式について説明します。
長い説明
PowerShell プロバイダーからアクセスできるデータ ストア内のすべての項目は、パス名で一意に識別できます。 パスは、項目名、項目が配置されているコンテナーとサブコンテナー、およびコンテナーにアクセスする PowerShell ドライブの組み合わせです。
PowerShell では、pathname には 、完全修飾 型と 相対型の 2 種類のいずれかを指定できます。 完全修飾パスは、パスを構成するすべての要素で構成されます。 次の構文は、完全修飾パス名の要素を示しています。
[<provider>::]<drive>:[\<container>[\<subcontainer>...]]\<item>
プレースホルダーは <provider>
、データ ストアにアクセスする PowerShell プロバイダーを参照します。 たとえば、FileSystem プロバイダーを使用すると、コンピューター上のファイルとディレクトリにアクセスできます。 この構文の要素は省略可能であり、ドライブ名はすべてのプロバイダーで一意であるため、必要ありません。
プレースホルダーは <drive>
、特定の PowerShell プロバイダーでサポートされている PowerShell ドライブを参照します。 FileSystem プロバイダーの場合、PowerShell ドライブはシステムで構成されている Windows ドライブにマップされます。
たとえば、システムにドライブとC:
ドライブがA:
含まれている場合、FileSystem プロバイダーは PowerShell で同じドライブを作成します。
ドライブを指定したら、項目を含むコンテナーとサブコンテナーを指定する必要があります。 コンテナーは、データ ストアに存在する階層的な順序で指定する必要があります。 つまり、親コンテナーから始めて、その親コンテナー内の子コンテナーで、各子コンテナーのパターンを繰り返す必要があります。 さらに、各コンテナーの前に円記号を付ける必要があります。
注意
PowerShell を使用すると、バックスラッシュまたはスラッシュを使用して、他のプラットフォームの PowerShell との互換性を確保できます。 これは PowerShell コマンドでは機能しますが、ネイティブ ディレクトリ区切り文字のみを想定するネイティブ アプリケーションで使用する場合は機能しない場合があります。 を使用して [System.IO.Path]::DirectorySeparatorChar
、プラットフォームに使用される文字を見つけます。
コンテナーとサブコンテナーを指定した後、項目名の前に円記号を付ける必要があります。 たとえば、ディレクトリ内C:\Windows\System32
のファイルのShell.dll
完全修飾パス名は次のようになります。
C:\Windows\System32\Shell.dll
この場合、コンテナーにアクセスするドライブは C:
ドライブ、最上位コンテナーは Windows
であり、サブコンテナーは System32
であり、項目は です Shell.dll
。
状況によっては、完全修飾パスを指定する必要がなく、代わりに相対パスを使用できます。 PowerShell を使用すると、現在の作業場所に対する相対的な位置に基づいて項目を識別できます。
PowerShell では、次の文字シーケンスを使用して相対パスを指定します。
- (
.
) - 現在の場所 - (
..
) - 現在の場所の親 - (
\
) - 現在の場所のルート
次の例は、 に設定されている現在の作業ディレクトリに C:\Windows
基づいています。
- 相対パス
.\System
は として解決されます。C:\Windows\System
- 相対パス
..\Program Files
は として解決されます。C:\Program Files
- 相対パス
\Program Files
は として解決されます。C:\Program Files
- 相対パス
System
は として解決されます。C:\Windows\System
コマンドでパスを使用する場合は、完全修飾パスまたは相対パスを使用できます。 たとえば、現在の作業ディレクトリが であると C:\Windows
します。 次 Get-ChildItem
のコマンドは、ディレクトリ内のすべての項目を C:\TechDocs
取得します。
Get-ChildItem \TechDocs
円記号は、現在の作業場所のドライブ ルートを使用する必要があることを示します。 作業ディレクトリは C:\Windows
であるため、ドライブ ルートはドライブです C:
。 TechDocs
ディレクトリはルートから離れているため、円記号のみを指定する必要があります。
完全修飾パスを使用すると、同じ結果が得られます。
Get-ChildItem C:\TechDocs
完全修飾パスと相対パス名のどちらを使用するかに関係なく、パスは、アイテムを検索するだけでなく、別のコンテナー内の別のアイテムと同じ名前を共有している場合でも、アイテムを一意に識別するため、パスが重要です。
たとえば、 という名前 Results.txt
の 2 つのファイルがあるとします。 最初のファイルは という名前 C:\TechDocs\Jan
のディレクトリにあり、2 番目のファイルは という名前 C:\TechDocs\Feb
のディレクトリにあります。 最初のファイル (C:\TechDocs\Jan\Results.txt
) のパスと 2 番目のファイル (C:\TechDocs\Feb\Results.txt
) のパスを使用すると、2 つのファイルを明確に区別できます。