about_Path_Syntax
Kort beskrivning
Beskriver de fullständiga och relativa sökvägsformaten i PowerShell.
Lång beskrivning
Alla objekt i ett datalager som är tillgängliga via en PowerShell-provider kan identifieras unikt med deras sökvägsnamn. En sökväg är en kombination av objektnamnet, containern och undercontainrarna som objektet finns i och Den PowerShell-enhet som containrarna nås via.
I PowerShell kan sökvägsnamn vara en av två typer: fullständigt kvalificerade och relativa. En fullständigt kvalificerad sökväg består av alla element som utgör en sökväg. Följande syntax visar elementen i ett fullständigt kvalificerat sökvägsnamn:
[<provider>::]<drive>:[\<container>[\<subcontainer>...]]\<item>
Platshållaren <provider>
refererar till PowerShell-providern som du kommer åt datalagret genom. Med FileSystem-providern kan du till exempel komma åt filer och kataloger på datorn. Det här elementet i syntaxen är valfritt och behövs aldrig eftersom enhetsnamnen är unika för alla providrar.
Platshållaren <drive>
refererar till Den PowerShell-enhet som stöds av en viss PowerShell-provider. När det gäller FileSystem-providern mappar PowerShell-enheterna till de Windows-enheter som är konfigurerade i systemet.
Om ditt system till exempel innehåller en A:
enhet och en C:
enhet skapar FileSystem-providern samma enheter i PowerShell.
När du har angett enheten måste du ange alla containrar och undercontainrar som innehåller objektet. Containrarna måste anges i den hierarkiska ordning som de finns i datalagret. Med andra ord måste du börja med den överordnade containern och sedan den underordnade containern i den överordnade containern och upprepa mönstret för varje underordnad container. Dessutom måste varje container föregås av ett omvänt snedstreck.
Anteckning
Med PowerShell kan du använda omvänt snedstreck eller snedstreck för kompatibilitet med PowerShell på andra plattformar. Detta fungerar för PowerShell-kommandon, men kanske inte fungerar när det används med interna program som bara förväntar sig den interna katalogavgränsaren. Använd [System.IO.Path]::DirectorySeparatorChar
för att hitta tecknet som används för din plattform.
När containern och undercontainrar har angetts måste du ange objektnamnet, föregås av ett omvänt snedstreck. Till exempel är det fullständigt kvalificerade sökvägsnamnet för Shell.dll
filen i C:\Windows\System32
katalogen följande:
C:\Windows\System32\Shell.dll
I det här fallet är C:
den enhet genom vilken containrarna används enheten, containern på den översta nivån är Windows
, undercontainern är System32
och objektet är Shell.dll
.
I vissa situationer behöver du inte ange en fullständigt kvalificerad sökväg utan kan i stället använda en relativ sökväg. Med PowerShell kan du identifiera ett objekt baserat på dess plats i förhållande till den aktuella arbetsplatsen.
PowerShell använder följande teckensekvenser för att ange relativa sökvägar.
- (
.
) – Aktuell plats - (
..
) – Överordnad för aktuell plats - (
\
) – Rot för aktuell plats
Följande exempel baseras på den aktuella arbetskatalogen som anges till C:\Windows
.
- Den relativa sökvägen
.\System
matchas somC:\Windows\System
- Den relativa sökvägen
..\Program Files
matchas somC:\Program Files
- Den relativa sökvägen
\Program Files
matchas somC:\Program Files
- Den relativa sökvägen
System
matchas somC:\Windows\System
När du använder en sökväg i ett kommando kan du använda en fullständigt kvalificerad sökväg eller en relativ sökväg. Anta till exempel att din aktuella arbetskatalog är C:\Windows
. Följande Get-ChildItem
kommando hämtar alla objekt i C:\TechDocs
katalogen:
Get-ChildItem \TechDocs
Omvänt snedstreck anger att enhetsroten för den aktuella arbetsplatsen ska användas. Eftersom arbetskatalogen är C:\Windows
är enhetsroten C:
enheten. TechDocs
Eftersom katalogen finns utanför roten behöver du bara ange det omvända snedstrecket.
Du får samma resultat med hjälp av den fullständigt kvalificerade sökvägen:
Get-ChildItem C:\TechDocs
Oavsett om du använder en fullständigt kvalificerad sökväg eller ett relativt sökvägsnamn är en sökväg viktig inte bara för att den hittar ett objekt utan även för att det unikt identifierar objektet även om objektet delar samma namn som ett annat objekt i en annan container.
Anta till exempel att du har två filer som vart och ett heter Results.txt
. Den första filen finns i en katalog med namnet C:\TechDocs\Jan
, och den andra filen finns i en katalog med namnet C:\TechDocs\Feb
. Med sökvägen till den första filen (C:\TechDocs\Jan\Results.txt
) och sökvägen till den andra filen (C:\TechDocs\Feb\Results.txt
) kan du tydligt skilja mellan de två filerna.