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 en 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 används med hjälp av stackName-parametern .
Exempel
Exempel 1: Ange den aktuella platsen
PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>
Det här kommandot anger den aktuella platsen till enhetens HKLM:
rot.
Exempel 2: Ange den aktuella platsen och visa den platsen
PS C:\> Set-Location -Path "Env:\" -PassThru
Path
----
Env:\
PS Env:\>
Det här kommandot anger den aktuella platsen till enhetens Env:
rot. Den använder parametern PassThru för att dirigera PowerShell att returnera ett PathInfo-objekt som representerar platsen Env:\
.
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 HKLM:
på enheten i registerprovidern.
Det andra kommandot anger platsen till den aktuella platsen för 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 Get-Location -PSDrive <DriveName>
kommandot .
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 att sökvägsplatsen staplar den aktuella platsstacken. Det tredje kommandot visar platserna i den aktuella platsstacken.
Cmdletarna *-Location
använder den aktuella platsstacken om inte en annan platsstack 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 eller cd -
cd +
är ett enkelt sätt att navigera genom platshistoriken 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 talar om för PowerShell att inga tecken ska tolkas som escape-sekvenser.
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Returnerar ett PathInfo-objekt som representerar platsen. Som standard genererar denna cmdlet inga utdata.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Ange sökvägen till en ny arbetsplats. Om ingen sökväg anges används Set-Location
den aktuella användarens hemkatalog som standard. När jokertecken används väljer cmdleten den första sökvägen som matchar jokertecknets mönster.
PowerShell behåller en historik över de senaste 20 platserna som du har angett. Om parametervärdet Path är -
tecknet blir den nya arbetsplatsen den tidigare arbetsplatsen i historiken (om den finns). Om värdet är +
tecknet blir den nya arbetsplatsen på samma sätt nästa arbetsplats i historiken (om den finns). Detta liknar att använda 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 för närvarande inget sätt att visa historiklistan.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-StackName
Anger det befintliga platsstackens namn som den här cmdleten gör till den aktuella platsstacken. Ange ett namn på platsstacken. Om du vill ange den namnlösa standardplatsstacken skriver $null
du eller en tom sträng (""
).
Cmdletarna *-Location
fungerar på den aktuella stacken om du inte använder stackName-parametern för att ange en annan stack. Mer information om platsstackar finns i Anteckningar.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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, System.Management.Automation.PathInfo, System.Management.Automation.PathInfoStack
Denna cmdlet genererar inga utdata om du inte anger parametern PassThru . Genom att använda PassThru med Path eller LiteralPath genereras ett PathInfo-objekt som representerar den nya platsen. Genom att använda PassThru med StackName genereras ett PathInfoStack-objekt som representerar den nya stackkontexten.
Kommentarer
PowerShell stöder flera runspaces per process. Varje runspace har en egen aktuell 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-cmdletar 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 de providrar som är tillgängliga i sessionen skriver du Get-PSProvider
. Mer information finns i about_Providers.
En stack är en lista över senast in- och utgående objekt där endast det senast tillagda objektet kan nås. Du lägger till objekt i en stack i den ordning som 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 platsstackar. 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 platsstackar använder *-Location
du cmdletarna enligt följande:
Om du vill lägga till en plats i en platsstack använder du cmdleten
Push-Location
.Om du vill hämta en plats från en platsstack använder du cmdleten
Pop-Location
.Om du vill visa platserna i den aktuella platsstacken använder du stackparametern för cmdleten
Get-Location
. Om du vill visa platserna i en namngiven platsstack använder du stackname-parametern förGet-Location
.Om du vill skapa en ny platsstack använder du stackName-parametern för
Push-Location
. Om du anger en stack som inte finns skaparPush-Location
du stacken.Om du vill göra en platsstack till den aktuella platsstacken använder du stackName-parametern 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 platsstack till den aktuella platsstacken kan du inte längre använda Push-Location
cmdletarna 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 stackName-parametern för cmdleten Set-Location
med värdet $null
eller en tom sträng (""
).