about_Path_Syntax

簡単な説明

PowerShell の完全パス形式と相対パス形式について説明します。

詳細な説明

PowerShell プロバイダーを介してアクセスできるデータ ストア内のすべての項目は、パス名によって一意に識別できます。 パスは、項目名、項目が配置されているコンテナーとサブコンテナー、およびコンテナーにアクセスする PowerShell ドライブの組み合わせです。

PowerShell では、パス名には、完全修飾相対の 2 種類のいずれかを指定できます。 完全修飾パスは、パスを構成するすべての要素で構成されます。 次の構文は、完全修飾パス名の要素を示しています。

[<provider>::]<drive>:[\<container>[\<subcontainer>...]]\<item>

プレースホルダーは <provider> 、データ ストアにアクセスする PowerShell プロバイダーを参照します。 たとえば、FileSystem プロバイダーを使用すると、コンピューター上のファイルとディレクトリにアクセスできます。 この構文の要素は省略可能であり、ドライブ名はすべてのプロバイダーで一意であるため、必要ありません。

プレースホルダーは <drive> 、特定の PowerShell プロバイダーでサポートされている PowerShell ドライブを参照します。 FileSystem プロバイダーの場合、PowerShell ドライブはシステムで構成されている Windows ドライブにマップされます。 たとえば、システムにドライブとC:ドライブがA:含まれている場合、FileSystem プロバイダーは PowerShell で同じドライブを作成します。

ドライブを指定したら、その項目を含むコンテナーとサブコンテナーを指定する必要があります。 コンテナーは、データ ストアに存在する階層的な順序で指定する必要があります。 つまり、親コンテナー、その親コンテナー内の子コンテナーから始めて、各子コンテナーのパターンを繰り返す必要があります。 さらに、各コンテナーの前に円記号を付ける必要があります。

Note

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

完全修飾パスと相対パス名のどちらを使用するかに関係なく、パスが重要なのは、アイテムが検索されるだけでなく、その項目が別のコンテナー内の別の項目と同じ名前を共有している場合でも、項目を一意に識別するためです。

たとえば、それぞれ名前が付けられた 2 つのファイルがあるとします Results.txt。 最初のファイルは名前の付いたC:\TechDocs\Janディレクトリにあり、2 番目のファイルは .C:\TechDocs\Feb 最初のファイル (C:\TechDocs\Jan\Results.txt) のパスと 2 番目のファイル (C:\TechDocs\Feb\Results.txt) のパスを使用すると、2 つのファイルを明確に区別できます。

関連項目