Dela via


Get-Location

Hämtar information om den aktuella arbetsplatsen eller en platsstacken.

Syntax

Get-Location
   [-PSProvider <String[]>]
   [-PSDrive <String[]>]
   [<CommonParameters>]
Get-Location
   [-Stack]
   [-StackName <String[]>]
   [<CommonParameters>]

Description

Cmdleten Get-Location hämtar ett objekt som representerar den aktuella katalogen, ungefär som kommandot print working directory (pwd).

När du flyttar mellan PowerShell-enheter behåller PowerShell din plats på varje enhet. Du kan använda den här cmdleten för att hitta din plats på varje enhet.

Du kan använda den här cmdleten för att hämta den aktuella katalogen vid körning och använda den i funktioner och skript, till exempel i en funktion som visar den aktuella katalogen i PowerShell-prompten.

Du kan också använda den här cmdleten för att visa platserna i en platsstack. Mer information finns i Anteckningar och beskrivningar av parametrarna Stack och StackName .

Exempel

Exempel 1: Visa din aktuella enhetsplats

Det här kommandot visar din plats på den aktuella PowerShell-enheten.

PS C:\Windows> Get-Location

Path
----
C:\Windows

Om du till exempel är i Windows katalogen på C: enheten visas sökvägen till katalogen.

Exempel 2: Visa din aktuella plats för olika enheter

Det här exemplet visar hur du använder Get-Location för att visa din aktuella plats på olika PowerShell-enheter. Set-Location används för att ändra platsen till flera olika sökvägar på olika PSDrives.

PS C:\> Set-Location C:\Windows
PS C:\Windows> Set-Location HKLM:\Software\Microsoft
PS HKLM:\Software\Microsoft> Set-Location "HKCU:\Control Panel\Input Method"
PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive C

Path
----
C:\Windows

PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive HKLM

Path
----
HKLM:\Software\Microsoft

PS HKCU:\Control Panel\Input Method> Set-Location C:
PS C:\Windows> Get-Location -PSProvider Registry

Path
----
HKCU:\Control Panel\Input Method

Exempel 3: Hämta platser med hjälp av staplar

Det här exemplet visar hur du använder parametrarna Get-LocationStack och StackName för för att lista platserna i den aktuella platsstacken och alternativa platsstackar.

Cmdleten Push-Location används för att byta till tre olika platser. Den tredje push-överföringen använder ett annat stacknamn. Stack-parametern för visar innehållet i standardstacken.Get-Location StackName-parameternGet-Location för visar innehållet i stacken med namnet Stack2.

PS C:\> Push-Location C:\Windows
PS C:\Windows>Push-Location System32
PS C:\Windows\System32>Push-Location WindowsPowerShell -StackName Stack2
C:\Windows\System32\WindowsPowerShell>Get-Location -Stack

Path
----
C:\Windows
C:\

C:\Windows\System32\WindowsPowerShell>Get-Location -StackName Stack2

Path
----
C:\Windows\System32

Exempel 4: Anpassa PowerShell-prompten

Det här exemplet visar hur du anpassar PowerShell-prompten.

PS C:\>
function prompt { 'PowerShell: ' + (Get-Location) + '> '}
PowerShell: C:\>

Funktionen som definierar prompten innehåller ett Get-Location kommando som körs när prompten visas i konsolen.

Formatet för powershell-standardprompten definieras av en särskild funktion med namnet prompt. Du kan ändra kommandotolken i konsolen genom att skapa en ny funktion med namnet prompt.

Om du vill se den aktuella promptfunktionen skriver du följande kommando: Get-Content Function:\prompt

Parametrar

-PSDrive

Hämtar den aktuella platsen på den angivna PowerShell-enheten.

Om du till exempel är på enheten kan du använda den Cert: här parametern för att hitta din aktuella plats på C: enheten.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

Hämtar den aktuella platsen på den enhet som stöds av den angivna PowerShell-providern. Om den angivna providern stöder mer än en enhet returnerar den här cmdleten platsen på den senast använda enheten.

Om du till exempel är på enheten kan du använda den C: här parametern för att hitta din aktuella plats på enheterna i PowerShell-registerprovidern .

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Stack

Anger att den här cmdleten visar de platser som lagts till i den aktuella platsstacken. Du kan lägga till platser i staplar med hjälp av cmdleten Push-Location .

Om du vill visa platserna i en annan platsstacken använder du stackname-parametern . Information om platsstackar finns i Anteckningar.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StackName

Anger, som en strängmatris, de namngivna platsstacken. Ange ett eller flera platsstackens namn.

Om du vill visa platserna i den aktuella platsstacken använder du stackparametern. Använd cmdleten för att göra en platsstack till Set-Location den aktuella platsstacken.

Den här cmdleten kan inte visa platserna i den namnlösa standardstacken om det inte är den aktuella stacken.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Indata

None

Du kan inte skicka indata till den här cmdleten.

Utdata

System.Management.Automation.PathInfo or System.Management.Automation.PathInfoStack

Om du använder parametrarna Stack eller StackName returnerar den här cmdleten ett PathInfoStack-objekt . Annars returneras ett PathInfo-objekt .

Kommentarer

PowerShell stöder flera runspaces per process. Varje runspace har en egen aktuell katalog. Detta är inte samma 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. Cmdleten Get-Location returnerar den aktuella katalogen för det aktuella PowerShell-körningsutrymmet.

Den här cmdleten är utformad för att fungera med data som exponeras av alla leverantörer. Om du vill visa en lista över providrar i sessionen skriver du Get-PSProvider. Mer information finns i about_Providers.

Hur parametrarna PSProvider, PSDrive, Stack och StackName interagerar beror på providern. Vissa kombinationer resulterar i fel, till exempel att ange både en enhet och en provider som inte exponerar enheten. Om inga parametrar anges returnerar den här cmdleten PathInfo-objektet för providern som innehåller den aktuella arbetsplatsen.

En stack är en sista-i-först ut-lista där endast det senast tillagda objektet är tillgängligt. 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 platsstaplar. PowerShell skapar en namnlös standardplatsstack och 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 du PowerShell-cmdletarna *-Location på följande sätt.

  • 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 stackparametern för cmdleten Get-Location . Om du vill visa platserna i en namngiven platsstack använder du stackname-parametern för cmdleten Get-Location .

  • Om du vill skapa en ny platsstacken använder du stackname-parametern för cmdleten Push-Location . Om du anger en stack som inte finns Push-Location skapar du stacken.

  • Om du vill göra en platsstack till den aktuella platsstacken använder du stackname-parametern för cmdleten 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 den här cmdleten 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 ("").