Set-Location
Anger den aktuella arbetsplatsen till en angiven plats.
Syntax
Set-Location
[[-Path] <String>]
[-PassThru]
[<CommonParameters>]
Set-Location
-LiteralPath <String>
[-PassThru]
[<CommonParameters>]
Set-Location
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Description
Cmdleten Set-Location
anger arbetsplatsen till en angiven plats. Den platsen kan vara en katalog, en underkatalog, en registerplats eller någon providersökväg.
PowerShell 6.2 har lagt till stöd för -
och +
som värden för parametern Path. PowerShell har en historik över de senaste 20 platserna som kan nås med -
och +
. Den här listan är oberoende av platsstacken som nås med hjälp av parametern StackName.
Exempel
Exempel 1: Ange den aktuella platsen
PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>
Det här kommandot anger den aktuella platsen till roten på den HKLM:
enheten.
Exempel 2: Ange den aktuella platsen och visa platsen
PS C:\> Set-Location -Path "Env:\" -PassThru
Path
----
Env:\
PS Env:\>
Det här kommandot anger den aktuella platsen till roten på den Env:
enheten. Den använder parametern PassThru för att dirigera PowerShell till att returnera ett PathInfo--objekt som representerar Env:\
plats.
Exempel 3: Ange platsen till den aktuella platsen på C:-enheten
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>
Det första kommandot anger platsen till roten för den HKLM:
enheten i registerprovidern.
Det andra kommandot anger platsen till den aktuella platsen för den C:
enheten i FileSystem-providern.
När enhetsnamnet anges i formuläret <DriveName>:
(utan omvänt snedstreck) anger cmdleten platsen till den aktuella platsen i PSDrive.
Om du vill hämta den aktuella platsen i PSDrive använder du kommandot Get-Location -PSDrive <DriveName>
.
Exempel 4: Ange den aktuella platsen till en namngiven stack
PS C:\> Push-Location -Path 'C:\Program Files\PowerShell\' -StackName "Paths"
PS C:\Program Files\PowerShell\> Set-Location -StackName "Paths"
PS C:\Program Files\PowerShell\> Get-Location -Stack
Path
----
C:\
Det första kommandot lägger till den aktuella platsen i paths-stacken. Det andra kommandot gör platsstacken Sökvägar till den aktuella platsstacken. Det tredje kommandot visar platserna i den aktuella platsstacken.
Cmdletarna *-Location
använder den aktuella platsstacken om inte en annan platsstacken anges i kommandot. Information om platsstackar finns i Anteckningar.
Exempel 5: Navigera i platshistoriken med hjälp av "+" eller "-"
PS C:\> Set-Location -Path $Env:SystemRoot
PS C:\Windows> Set-Location -Path Cert:\
PS Cert:\> Set-Location -Path HKLM:\
PS HKLM:\>
# Navigate back through the history using "-"
PS HKLM:\> Set-Location -Path -
PS Cert:\> Set-Location -Path -
PS C:\Windows>
# Navigate using the Set-Location alias "cd" and the implicit positional Path parameter
PS C:\Windows> cd -
PS C:\> cd +
PS C:\Windows> cd +
PS Cert:\>
Med hjälp av aliaset är cd -
eller cd +
ett enkelt sätt att navigera i din platshistorik i terminalen. Mer information om hur du navigerar med -
/+
finns i parametern Path.
Parametrar
-LiteralPath
Anger en sökväg till platsen. Värdet för parametern LiteralPath används exakt som det skrivs. Inga tecken tolkas som jokertecken. Om sökvägen innehåller escape-tecken omger du den med enkla citattecken. Enkla citattecken gör att PowerShell inte tolkar några tecken som escape-sekvenser.
Typ: | String |
Alias: | PSPath, LP |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-PassThru
Returnerar ett PathInfo- objekt som representerar platsen. Som standard genererar den här cmdleten inga utdata.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Path
Ange sökvägen till en ny arbetsplats. Om ingen sökväg anges Set-Location
som standard till den aktuella användarens hemkatalog. När jokertecken används väljer cmdleten den container (katalog, registernyckel, certifikatarkiv) som matchar jokerteckenmönstret. Om jokerteckenmönstret matchar mer än en container returnerar cmdleten ett fel.
PowerShell har en historik över de senaste 20 platserna som du har angett. Om parametervärdet Path är det -
tecknet blir den nya arbetsplatsen den tidigare arbetsplatsen i historiken (om den finns). Om värdet är det +
tecknet blir den nya arbetsplatsen på samma sätt nästa arbetsplats i historiken (om det finns). Detta liknar användning av Pop-Location
och Push-Location
förutom att historiken är en lista, inte en stack, och är implicit spårad, inte manuellt kontrollerad. Det finns inget sätt att visa historiklistan.
Typ: | String |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | True |
-StackName
Anger ett befintligt platsstackens namn som den här cmdleten gör till den aktuella platsstacken. Ange ett platsstackens namn. Ange den namnlösa standardplatsstacken genom att skriva $null
eller en tom sträng (""
).
Om du använder den här parametern ändras inte den aktuella platsen. Den ändrar bara den stack som används av *-Location
cmdletar. Cmdletarna *-Location
fungerar på den aktuella stacken om du inte använder parametern StackName för att ange en annan stack. Mer information om platsstackar finns i Anteckningar.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
Indata
Du kan skicka en sträng som innehåller en sökväg, men inte en literal sökväg, till den här cmdleten.
Utdata
None
Som standard returnerar den här cmdleten inga utdata.
När du använder parametern PassThru med Path eller LiteralPathreturnerar den här cmdleten ett PathInfo--objekt som representerar den nya platsen.
När du använder parametern PassThru med StackNamereturnerar den här cmdleten ett PathInfoStack--objekt som representerar den nya stackkontexten.
Kommentarer
PowerShell innehåller följande alias för Set-Location
:
- Alla plattformar:
cd
chdir
sl
PowerShell stöder flera runspaces per process. Varje runspace har sin egen aktuella katalog.
Detta är inte samma sak som [System.Environment]::CurrentDirectory
. Det här beteendet kan vara ett problem när du anropar .NET-API:er eller kör interna program utan att ange explicita katalogsökvägar.
Även om plats-cmdletarna angav den aktuella katalogen för hela processen kan du inte vara beroende av den eftersom en annan runspace kan ändra den när som helst. Du bör använda plats-cmdletarna för att utföra sökvägsbaserade åtgärder med hjälp av den aktuella arbetskatalogen som är specifik för den aktuella körningsytan.
Cmdleten Set-Location
är utformad för att fungera med data som exponeras av alla leverantörer. Om du vill visa en lista över tillgängliga leverantörer i sessionen skriver du Get-PSProvider
. Mer information finns i about_Providers.
En stack är en lista med de senaste och första ut där endast det senast tillagda objektet kan nås. Du lägger till objekt i en stack i den ordning du använder dem och hämtar dem sedan för användning i omvänd ordning. Med PowerShell kan du lagra providerplatser i platsstackar. PowerShell skapar en namnlös standardplatsstack. Du kan skapa flera namngivna platsstaplar. Om du inte anger ett stacknamn använder PowerShell den aktuella platsstacken. Som standard är den namnlösa standardplatsen den aktuella platsstacken, men du kan använda cmdleten Set-Location
för att ändra den aktuella platsstacken.
Om du vill hantera platsstaplar använder du cmdletarna *-Location
enligt följande:
Om du vill lägga till en plats i en platsstacken använder du cmdleten
Push-Location
.Om du vill hämta en plats från en platsstacken använder du cmdleten
Pop-Location
.Om du vill visa platserna i den aktuella platsstacken använder du parametern Stack i cmdleten
Get-Location
. Om du vill visa platserna i en namngiven platsstacken använder du parametern StackName förGet-Location
.Om du vill skapa en ny platsstacken använder du parametern StackName för
Push-Location
. Om du anger en stack som inte finns skaparPush-Location
stacken.Om du vill göra en platsstack till den aktuella platsstacken använder du parametern StackName för
Set-Location
.
Den namnlösa standardplatsstacken är endast helt tillgänglig när det är den aktuella platsstacken.
Om du gör en namngiven platsstacken till den aktuella platsstacken kan du inte längre använda cmdletarna Push-Location
eller Pop-Location
för att lägga till eller hämta objekt från standardstacken eller använda cmdleten Get-Location
för att visa platserna i den namnlösa stacken. Om du vill göra den namnlösa stacken till den aktuella stacken använder du parametern StackName för cmdleten Set-Location
med värdet $null
eller en tom sträng (""
).