Get-Location
Ruft Informationen zum aktuellen Arbeitsort oder einem Positionsstapel ab.
Syntax
Get-Location
[-PSProvider <String[]>]
[-PSDrive <String[]>]
[<CommonParameters>]
Get-Location
[-Stack]
[-StackName <String[]>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Get-Location
ruft ein Objekt ab, das das aktuelle Verzeichnis darstellt, ähnlich wie der Befehl "Arbeitsverzeichnis drucken" (pwd).
Wenn Sie zwischen PowerShell-Laufwerken wechseln, behält PowerShell Ihren Speicherort auf jedem Laufwerk bei. Sie können dieses Cmdlet verwenden, um Ihren Speicherort auf jedem Laufwerk zu finden.
Mit diesem Cmdlet können Sie das aktuelle Verzeichnis zur Laufzeit abrufen und in Funktionen und Skripts 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 Positionsstapel anzuzeigen. Weitere Informationen finden Sie in den Notizen und den Beschreibungen der parameter Stack und StackName.
Beispiele
Beispiel 1: Anzeigen des aktuellen Laufwerkspeicherorts
Dieser Befehl zeigt Ihren Speicherort auf dem aktuellen PowerShell-Laufwerk an.
PS C:\Windows> Get-Location
Path
----
C:\Windows
Wenn Sie sich beispielsweise im Windows
Verzeichnis des C:
Laufwerks befinden, wird der Pfad zu diesem Verzeichnis angezeigt.
Beispiel 2: Anzeigen der aktuellen Position für verschiedene Laufwerke
In diesem Beispiel wird die Verwendung von Get-Location
veranschaulicht, um Ihren aktuellen Speicherort auf verschiedenen PowerShell-Laufwerken anzuzeigen.
Set-Location
wird verwendet, um den Speicherort in verschiedene Pfade auf verschiedenen PSDrives 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 parameter Stack und StackName parameter von Get-Location
verwenden, um die Speicherorte im aktuellen Positionsstapel und alternative Positionsstapel auflisten zu können.
Das Cmdlet Push-Location
wird verwendet, um an drei verschiedenen Speicherorten 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 Stack2
an.
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-Standardaufforderung wird durch eine spezielle Funktion mit dem Namen prompt
definiert. Sie können die Eingabeaufforderung in Der Konsole ändern, indem Sie eine neue Funktion namens prompt
erstellen.
Um die aktuelle Eingabeaufforderungsfunktion anzuzeigen, geben Sie den folgenden Befehl ein: Get-Content Function:\prompt
Parameter
-PSDrive
Ruft den aktuellen Speicherort im angegebenen PowerShell-Laufwerk ab.
Wenn Sie sich beispielsweise im laufwerk Cert:
befinden, können Sie diesen Parameter verwenden, um ihren aktuellen Speicherort im C:
Laufwerk zu finden.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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 zuletzt zugegriffenen Laufwerk zurück.
Wenn Sie sich beispielsweise im C:
Laufwerk befinden, können Sie diesen Parameter verwenden, um Ihren aktuellen Speicherort auf den Laufwerken des PowerShell-Registrierungsanbieters zu finden.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Stack
Gibt an, dass dieses Cmdlet die Speicherorte anzeigt, die dem aktuellen Positionsstapel hinzugefügt wurden. Sie können Mithilfe des Cmdlets Push-Location
Speicherorte zu Stapeln hinzufügen.
Verwenden Sie den StackName Parameter, um die Speicherorte in einem anderen Positionsstapel anzuzeigen. Informationen zu Positionsstapeln finden Sie in den Hinweise.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-StackName
Gibt als Zeichenfolgenarray die benannten Positionsstapel an. Geben Sie einen oder mehrere Speicherortstapelnamen ein.
Um die Speicherorte im aktuellen Positionsstapel anzuzeigen, verwenden Sie den parameter Stack. Um einen Positionsstapel zum aktuellen Positionsstapel zu machen, verwenden Sie das cmdlet Set-Location
.
Dieses Cmdlet kann die Speicherorte im nicht benannten Standardstapel nur anzeigen, wenn es sich um den aktuellen Stapel handelt.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
Standardmäßig gibt dieses Cmdlet ein PathInfo-objekt zurück.
Wenn Sie die Parameter Stack oder StackName 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 mit [System.Environment]::CurrentDirectory
identisch. Dieses Verhalten kann ein Problem sein, wenn .NET-APIs aufgerufen oder systemeigene Anwendungen ausgeführt werden, ohne explizite Verzeichnispfade bereitzustellen.
Das Cmdlet Get-Location
gibt das aktuelle Verzeichnis des aktuellen PowerShell-Runspace zurück.
Dieses Cmdlet wurde entwickelt, um mit den Daten zu arbeiten, die von einem beliebigen Anbieter verfügbar gemacht werden. Geben Sie Get-PSProvider
ein, um die Anbieter in Ihrer Sitzung auflisten zu können. Weitere Informationen finden Sie unter about_Providers.
Die Möglichkeiten, wie der PSProvider, PSDrive, Stackund StackName Parameter interagieren, hängt vom Anbieter ab. Einige Kombinationen führen zu Fehlern, z. B. das Angeben eines Laufwerks und eines Anbieters, der dieses Laufwerk nicht verfügbar macht. Wenn keine Parameter angegeben werden, 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, und rufen sie dann für die Verwendung in umgekehrter Reihenfolge ab. Mit PowerShell können Sie Anbieterspeicherorte in Standortstapeln speichern. PowerShell erstellt einen nicht benannten Standardspeicherortstapel, und Sie können mehrere benannte Speicherortstapel erstellen. Wenn Sie keinen Stapelnamen angeben, verwendet PowerShell den aktuellen Speicherortstapel. Standardmäßig ist der nicht benannte Standardspeicherort der aktuelle Speicherortstapel, Sie können jedoch das Cmdlet Set-Location
verwenden, um den aktuellen Speicherortstapel zu ändern.
Verwenden Sie zum Verwalten von Standortstapeln die PowerShell-*-Location
-Cmdlets wie folgt.
Verwenden Sie das Cmdlet
Push-Location
, um einem Standortstapel einen Speicherort hinzuzufügen.Um einen Speicherort aus einem Standortstapel abzurufen, verwenden Sie das cmdlet
Pop-Location
.Um die Speicherorte im aktuellen Positionsstapel anzuzeigen, verwenden Sie den Stack-Parameter des cmdlets
Get-Location
. Um die Speicherorte in einem benannten Speicherortstapel anzuzeigen, verwenden Sie den StackName Parameter des CmdletsGet-Location
.Um einen neuen Speicherortstapel zu erstellen, verwenden Sie den StackName Parameter des cmdlets
Push-Location
. Wenn Sie einen nicht vorhandenen Stapel angeben, erstelltPush-Location
den Stapel.Um einen Positionsstapel zum aktuellen Positionsstapel zu machen, verwenden Sie den StackName Parameter des cmdlets
Set-Location
.
Auf den nicht benannten Standardspeicherortstapel kann nur zugegriffen werden, wenn es sich um den aktuellen Speicherortstapel handelt.
Wenn Sie einen benannten Speicherortstapel zum aktuellen Positionsstapel machen, können Sie die Push-Location
oder Pop-Location
Cmdlets nicht mehr verwenden, um Elemente aus dem Standardstapel hinzuzufügen oder abzurufen, oder verwenden Sie dieses Cmdlet, um die Speicherorte im nicht benannten Stapel anzuzeigen. Um den nicht benannten Stapel zum aktuellen Stapel zu machen, verwenden Sie den StackName Parameter des cmdlets Set-Location
mit dem Wert $null
oder einer leeren Zeichenfolge (""
).