Freigeben über


about_Path_Syntax

Kurze Beschreibung

Beschreibt die vollständigen und relativen Pfadformate in PowerShell.

Lange Beschreibung

Alle Elemente in einem Datenspeicher, auf die über einen PowerShell-Anbieter zugegriffen werden kann, können anhand ihrer Pfadnamen eindeutig identifiziert werden. Ein Pfad ist eine Kombination aus dem Elementnamen, dem Container und Untercontainern, in denen sich das Element befindet, und das PowerShell-Laufwerk, über das auf die Container zugegriffen wird.

In PowerShell können Pfadnamen eines von zwei Typen sein: vollqualifizierte und relativ. Ein vollqualifizierter Pfad besteht aus allen Elementen, die einen Pfad bilden. Die folgende Syntax zeigt die Elemente in einem vollqualifizierten Pfad:

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

Der <provider> Platzhalter bezieht sich auf den PowerShell-Anbieter, über den Sie auf den Datenspeicher zugreifen. Mit dem FileSystem-Anbieter können Sie beispielsweise auf die Dateien und Verzeichnisse auf Ihrem Computer zugreifen. Dieses Element der Syntax ist optional und wird nie benötigt, da die Laufwerknamen für alle Anbieter eindeutig sind.

Der <drive> Platzhalter bezieht sich auf das PowerShell-Laufwerk, das von einem bestimmten PowerShell-Anbieter unterstützt wird. Im Fall des FileSystem-Anbieters ordnen die PowerShell-Laufwerke den Windows-Laufwerken zu, die auf Ihrem System konfiguriert sind. Wenn Ihr System beispielsweise ein A: Laufwerk und ein C: Laufwerk enthält, erstellt der FileSystem-Anbieter dieselben Laufwerke in PowerShell.

Nachdem Sie das Laufwerk angegeben haben, müssen Sie alle Container und Untercontainer angeben, die das Element enthalten. Die Container müssen in der hierarchischen Reihenfolge angegeben werden, in der sie im Datenspeicher vorhanden sind. Anders ausgedrückt: Sie müssen mit dem übergeordneten Container beginnen und dann den untergeordneten Container in diesem übergeordneten Container wiederholen und das Muster für jeden untergeordneten Container wiederholen. Darüber hinaus muss jedem Container ein umgekehrter Schrägstrich vorangestellt werden.

Hinweis

PowerShell ermöglicht ihnen die Verwendung von Schrägstrichen oder Schrägstrichen zur Kompatibilität mit PowerShell auf anderen Plattformen. Dies funktioniert für PowerShell-Befehle, funktioniert aber möglicherweise nicht, wenn sie mit systemeigenen Anwendungen verwendet werden, die nur das systemeigene Verzeichnistrennzeichen erwarten. Hiermit finden Sie [System.IO.Path]::DirectorySeparatorChar das Zeichen, das für Ihre Plattform verwendet wird.

Nachdem der Container und untercontainer angegeben wurden, müssen Sie den Elementnamen angeben, dem ein umgekehrter Schrägstrich vorangestellt ist. Der vollqualifizierte Pfadname für die Shell.dll Datei im C:\Windows\System32 Verzeichnis lautet z. B. wie folgt:

C:\Windows\System32\Shell.dll

In diesem Fall ist das Laufwerk, über das auf die Container zugegriffen wird, das C: Laufwerk, der Container der obersten Ebene , Windowsder Untercontainer ist System32, und das Element ist Shell.dll.

In einigen Fällen müssen Sie keinen vollqualifizierten Pfad angeben und können stattdessen einen relativen Pfad verwenden. PowerShell ermöglicht es Ihnen, ein Element basierend auf seinem Standort relativ zum aktuellen Arbeitsort zu identifizieren.

PowerShell verwendet die folgenden Zeichensequenzen, um relative Pfade anzugeben.

  • (.) - Aktueller Speicherort
  • (..) - Übergeordnetes Element des aktuellen Speicherorts
  • (\) - Stamm des aktuellen Speicherorts

Die folgenden Beispiele basieren auf dem aktuellen Arbeitsverzeichnis, auf das festgelegt C:\Windowswird.

  • Der relative Pfad .\System wird aufgelöst als C:\Windows\System
  • Der relative Pfad ..\Program Files wird aufgelöst als C:\Program Files
  • Der relative Pfad \Program Files wird aufgelöst als C:\Program Files
  • Der relative Pfad System wird aufgelöst als C:\Windows\System

Wenn Sie einen Pfad in einem Befehl verwenden, können Sie einen vollqualifizierten Pfad oder einen relativen Pfad verwenden. Angenommen, Ihr aktuelles Arbeitsverzeichnis ist C:\Windows. Mit dem C:\TechDocs folgenden Get-ChildItem Befehl werden alle Elemente im Verzeichnis abgerufen:

Get-ChildItem \TechDocs

Der umgekehrte Schrägstrich gibt an, dass der Laufwerkstamm des aktuellen Arbeitsspeicherorts verwendet werden soll. Da das Arbeitsverzeichnis lautet, ist C:\Windowsder Laufwerkstamm das C: Laufwerk. Da sich das TechDocs Verzeichnis außerhalb des Stammverzeichnisses befindet, müssen Sie nur den umgekehrten Schrägstrich angeben.

Sie erhalten dieselben Ergebnisse mithilfe des vollqualifizierten Pfads:

Get-ChildItem C:\TechDocs

Unabhängig davon, ob Sie einen vollqualifizierten Pfad oder einen relativen Pfadnamen verwenden, ist ein Pfad nicht nur wichtig, weil es ein Element findet, sondern auch, weil es das Element eindeutig identifiziert, auch wenn dieses Element denselben Namen wie ein anderes Element in einem anderen Container verwendet.

Angenommen, Sie haben zwei Dateien, die jeweils benannt Results.txtsind. Die erste Datei befindet sich in einem Verzeichnis mit dem Namen C:\TechDocs\Jan, und die zweite Datei befindet sich in einem Verzeichnis mit dem Namen C:\TechDocs\Feb. Der Pfad für die erste Datei (C:\TechDocs\Jan\Results.txt) und der Pfad für die zweite Datei (C:\TechDocs\Feb\Results.txt) ermöglichen es Ihnen, eindeutig zwischen den beiden Dateien zu unterscheiden.

Unterstützung für den Win32 File-Namespace

Unter Windows unterstützen die Cmdlets, die den FileSystem-Anbieter unterstützen, auch die Pfade, die das Win32-Dateiformat verwenden. Sie können diese Pfade nur mit dem LiteralPath-Parameter der Cmdlets verwenden.

Pfade im Win32-Dateinamespace sind präfixiert mit \\?\dem Präfix . Das Präfix weist die Windows-APIs an, alle Zeichenfolgenanalyse zu deaktivieren und die Zeichenfolge zu senden, die direkt an das Dateisystem folgt. Wenn das Dateisystem beispielsweise große Pfade und Dateinamen unterstützt, können Sie die MAX_PATH Grenzwerte überschreiten, die andernfalls von den Windows-APIs erzwungen werden.

Weitere Informationen finden Sie unter Win32 File Namespaces in Naming Files, Paths und Namespaces.

Siehe auch