Get-Location
Ruft Informationen zum aktuellen Arbeitsspeicherot oder Speicherstapel ab.
Syntax
Get-Location
[-PSProvider <String[]>]
[-PSDrive <String[]>]
[<CommonParameters>]
Get-Location
[-Stack]
[-StackName <String[]>]
[<CommonParameters>]
Beschreibung
Das Get-Location
Cmdlet ruft ein -Objekt ab, das das aktuelle Verzeichnis darstellt, ähnlich wie der Pwd-Befehl (Print Working Directory).
Wenn Sie zwischen PowerShell-Laufwerken wechseln, behält PowerShell Ihren Standort auf jedem Laufwerk bei. Sie können dieses Cmdlet verwenden, um Ihren Standort auf jedem Laufwerk zu finden.
Sie können dieses Cmdlet verwenden, um das aktuelle Verzeichnis zur Laufzeit abzurufen und in Funktionen und Skripts zu verwenden, z. B. in einer Funktion, die das aktuelle Verzeichnis in der PowerShell-Eingabeaufforderung anzeigt.
Sie können dieses Cmdlet auch verwenden, um die Speicherorte in einem Standortstapel anzuzeigen. Weitere Informationen finden Sie in den Notizen und den Beschreibungen der Parameter Stack und StackName .
Beispiele
Beispiel 1: Anzeigen des aktuellen Laufwerkspeicherorts
Mit diesem Befehl wird Ihr Speicherort auf dem aktuellen PowerShell-Laufwerk angezeigt.
PS C:\Windows> Get-Location
Path
----
C:\Windows
Wenn Sie sich für instance im Windows
Verzeichnis des C:
Laufwerks befinden, wird der Pfad zu diesem Verzeichnis angezeigt.
Beispiel 2: Anzeigen Ihres aktuellen Standorts für verschiedene Laufwerke
In diesem Beispiel wird die Verwendung von Get-Location
veranschaulicht, um Ihren aktuellen Standort auf verschiedenen PowerShell-Laufwerken anzuzeigen. Set-Location
wird verwendet, um den Speicherort auf verschiedenen PSDrives in mehrere verschiedene Pfade zu ändern.
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
Beispiel 3: Abrufen von Speicherorten mithilfe von Stapeln
In diesem Beispiel wird gezeigt, wie Sie die Stack- und StackName-Parameter von Get-Location
verwenden, um die Speicherorte im aktuellen Standortstapel und in alternativen Speicherortstapeln aufzulisten.
Das Push-Location
Cmdlet wird verwendet, um in drei verschiedene Speicherorte zu wechseln. Der dritte Push verwendet einen anderen Stapelnamen. Der Stack-Parameter von Get-Location
zeigt den Inhalt des Standardstapels an. Der StackName-Parameter von Get-Location
zeigt den Inhalt des Stapels mit dem Namen an 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
Beispiel 4: Anpassen der PowerShell-Eingabeaufforderung
In diesem Beispiel wird gezeigt, wie Sie die PowerShell-Eingabeaufforderung anpassen.
PS C:\>
function prompt { 'PowerShell: ' + (Get-Location) + '> '}
PowerShell: C:\>
Die Funktion, die die Eingabeaufforderung definiert, enthält einen Get-Location
Befehl, der immer dann ausgeführt wird, wenn die Eingabeaufforderung in der Konsole angezeigt wird.
Das Format der PowerShell-Standardeingabeaufforderung wird durch eine spezielle Funktion mit dem Namen prompt
definiert. Sie können die Eingabeaufforderung in Ihrer Konsole ändern, indem Sie eine neue Funktion mit dem Namen prompt
erstellen.
Geben Sie den folgenden Befehl ein, um die aktuelle Eingabeaufforderungsfunktion anzuzeigen: Get-Content Function:\prompt
Parameter
-PSDrive
Ruft den aktuellen Speicherort im angegebenen PowerShell-Laufwerk ab.
Wenn Sie sich auf dem Cert:
Laufwerk befinden, können Sie für instance diesen Parameter verwenden, um Ihren aktuellen Speicherort auf dem C:
Laufwerk zu ermitteln.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PSProvider
Ruft den aktuellen Speicherort auf dem Laufwerk ab, das vom angegebenen PowerShell-Anbieter unterstützt wird. Wenn der angegebene Anbieter mehrere Laufwerke unterstützt, gibt dieses Cmdlet den Speicherort auf dem Laufwerk zurück, auf das zuletzt zugegriffen wurde.
Wenn Sie sich beispielsweise auf dem C:
Laufwerk befinden, können Sie diesen Parameter verwenden, um Ihren aktuellen Speicherort auf den Laufwerken des PowerShell-Registrierungsanbieters zu finden.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Stack
Gibt an, dass dieses Cmdlet die Speicherorte anzeigt, die dem aktuellen Speicherortstapel hinzugefügt wurden. Sie können Mit dem Push-Location
Cmdlet Speicherorte zu Stapeln hinzufügen.
Verwenden Sie den StackName-Parameter , um die Speicherorte in einem anderen Standortstapel anzuzeigen. Informationen zu Standortstapeln finden Sie in den Notizen.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StackName
Gibt als Zeichenfolgenarray die benannten Speicherortstapel an. Geben Sie Speicherstapelnamen ein.
Verwenden Sie den Stack-Parameter , um die Speicherorte im aktuellen Standortstapel anzuzeigen. Verwenden Sie das Cmdlet, um einen Standortstapel zum Set-Location
aktuellen Speicherortstapel zu machen.
Dieses Cmdlet kann die Speicherorte im unbenannten Standardstapel nur anzeigen, wenn es sich um den aktuellen Stapel handelt.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet übergeben.
Ausgaben
Standardmäßig gibt dieses Cmdlet ein PathInfo-Objekt zurück.
Wenn Sie den Stack - oder StackName-Parameter verwenden, gibt dieses Cmdlet ein PathInfoStack-Objekt zurück.
Hinweise
PowerShell enthält die folgenden Aliase für Get-Location
:
Alle Plattformen:
gl
pwd
PowerShell unterstützt mehrere Runspaces pro Prozess. Jeder Runspace verfügt über ein eigenes aktuelles Verzeichnis.
Dies ist nicht identisch mit [System.Environment]::CurrentDirectory
. Dieses Verhalten kann ein Problem sein, wenn .NET-APIs aufgerufen oder native Anwendungen ausgeführt werden, ohne explizite Verzeichnispfade bereitzustellen.
Das Get-Location
Cmdlet gibt das aktuelle Verzeichnis des aktuellen PowerShell-Runspaces zurück.
Dieses Cmdlet ist für die Verwendung von Daten konzipiert, die von einem beliebigen Anbieter verfügbar gemacht werden. Geben Sie zum Auflisten der Anbieter in Ihrer Sitzung ein Get-PSProvider
. Weitere Informationen finden Sie unter about_Providers.
Die Interaktion der Parameter PSProvider, PSDrive, Stack und StackName hängt vom Anbieter ab. Bestimmte Kombinationen führen zu Fehlern, beispielsweise wenn ein Laufwerk zusammen mit einem Anbieter angegeben wird, der das betreffende Laufwerk nicht verfügbar macht. Wenn keine Parameter angegeben sind, gibt dieses Cmdlet das PathInfo-Objekt für den Anbieter zurück, der den aktuellen Arbeitsspeicherort enthält.
Ein Stapel ist eine last-in, first-out-Liste, in der nur auf das zuletzt hinzugefügte Element zugegriffen werden kann. Sie fügen einem Stapel Elemente in der Reihenfolge hinzu, in der Sie sie verwenden. Anschließend rufen Sie sie zur Verwendung in der umgekehrten Reihenfolge auf. Mit PowerShell können Sie Anbieterstandorte in Standortstapeln speichern. PowerShell erstellt einen unbenannten Standardspeicherortstapel, und Sie können mehrere benannte Speicherortstapel erstellen. Wenn Sie keinen Stapelnamen angeben, verwendet PowerShell den aktuellen Speicherortstapel. Standardmäßig ist der unbenannte Standardspeicherort der aktuelle Speicherortstapel. Sie können jedoch das Set-Location
Cmdlet verwenden, um den aktuellen Speicherortstapel zu ändern.
Verwenden Sie zum Verwalten von Standortstapeln die PowerShell-Cmdlets *-Location
wie folgt.
Um einem Standortstapel einen Speicherort hinzuzufügen, verwenden Sie das
Push-Location
Cmdlet.Verwenden Sie das
Pop-Location
Cmdlet, um einen Speicherort aus einem Standortstapel abzurufen.Um die Speicherorte im aktuellen Speicherortstapel anzuzeigen, verwenden Sie den Stack-Parameter des
Get-Location
Cmdlets. Um die Speicherorte in einem benannten Speicherortstapel anzuzeigen, verwenden Sie den StackName-Parameter desGet-Location
Cmdlets.Verwenden Sie zum Erstellen eines neuen Speicherortstapels den StackName-Parameter des
Push-Location
Cmdlets. Wenn Sie einen Stapel angeben, der nicht vorhanden ist,Push-Location
wird der Stapel erstellt.Um einen Standortstapel zum aktuellen Speicherortstapel zu machen, verwenden Sie den StackName-Parameter des
Set-Location
Cmdlets.
Auf den unbenannten Standardspeicherstapel kann nur vollständig zugegriffen werden, wenn es sich dabei um den aktuellen Speicherstapel handelt.
Wenn Sie einen benannten Speicherortstapel zum aktuellen Speicherortstapel machen, können Sie die Push-Location
Cmdlets oder Pop-Location
nicht mehr verwenden, um Elemente aus dem Standardstapel hinzuzufügen oder abzurufen, oder dieses Cmdlet verwenden, um die Speicherorte im nicht benannten Stapel anzuzeigen. Um den unbenannten Stapel zum aktuellen Stapel zu machen, verwenden Sie den StackName-Parameter des Set-Location
Cmdlets mit dem Wert oder $null
einer leeren Zeichenfolge (""
).