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 av 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 en fullständigt kvalificerad sökväg:
[<provider>::]<drive>:[\<container>[\<subcontainer>...]]\<item>
Platshållaren <provider>
refererar till PowerShell-providern genom vilken du får åtkomst till datalagret. Med FileSystem-providern kan du till exempel komma åt filerna och katalogerna på datorn. Det här elementet i syntaxen är valfritt och behövs aldrig eftersom enhetsnamnen är unika för alla leverantörer.
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 systemet 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 undercontainer 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.
Kommentar
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 inbyggda 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 undercontainers har angetts måste du ange objektnamnet, som föregås av ett omvänt snedstreck. Det fullständigt kvalificerade sökvägsnamnet för Shell.dll
filen i C:\Windows\System32
katalogen är till exempel 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 och 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 C:
enhetens rotenhet. TechDocs
Eftersom katalogen finns utanför roten behöver du bara ange omvänt snedstreck.
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 också för att den unikt identifierar objektet även om objektet har samma namn som ett annat objekt i en annan container.
Anta till exempel att du har två filer med namnet 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
. Sökvägen för den första filen (C:\TechDocs\Jan\Results.txt
) och sökvägen för den andra filen (C:\TechDocs\Feb\Results.txt
) gör att du tydligt kan skilja mellan de två filerna.
Stöd för Win32-filnamnområdet
I Windows stöder de cmdletar som stöder FileSystem-providern även de sökvägar som använder Win32-filnamnområdesformatet. Du kan bara använda dessa sökvägar med parametern LiteralPath för cmdletarna.
Sökvägar i Win32-filnamnområdet är prefixet med \\?\
. Prefixet instruerar Windows-API:erna att inaktivera all strängparsning och skicka strängen som följer direkt till filsystemet. Om filsystemet till exempel stöder stora sökvägar och filnamn kan du överskrida de MAX_PATH begränsningar som annars tillämpas av Windows-API:erna.
Mer information finns i Win32-filnamnområden i Namngivning av filer, sökvägar och namnområden.