Freigeben über


Get-Location

Ruft Informationen zum aktuellen Arbeitsspeicherot oder Speicherstapel ab.

Syntax

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

Beschreibung

Das Cmdlet Get-Location ruft ein -Objekt ab, das das aktuelle Verzeichnis darstellt, ähnlich wie beim Befehl "Arbeitsverzeichnis drucken" (pwd).

Wenn Sie zwischen Windows PowerShell-Laufwerken wechseln, behält Windows PowerShell den Speicherort bei jedem Laufwerk bei. Sie können dieses Cmdlet verwenden, um Ihren Speicherort auf jedem Laufwerk zu ermitteln.

Sie können dieses Cmdlet verwenden, um das aktuelle Verzeichnis zur Laufzeit abzurufen, und es in Funktionen und Skripts verwenden, z. B. in einer Funktion, die das aktuelle Verzeichnis in der Windows 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

PS C:\> Get-Location
Path
----
C:\WINDOWS

Dieser Befehl zeigt den Speicherort auf dem aktuellen Windows PowerShell-Laufwerk an.

Wenn Sie sich für instance im Windows-Verzeichnis des Laufwerks C: befinden, wird der Pfad zu diesem Verzeichnis angezeigt.

Beispiel 2: Anzeigen des aktuellen Standorts für verschiedene Laufwerke

The first command uses the **Set-Location** cmdlet to set the current location to the Windows subdirectory of the C: drive.
PS C:\> Set-Location C:\Windows

The second command uses the **Set-Location** cmdlet to change the location to the HKLM:\Software\Microsoft registry key. When you change to a location in the HKLM: drive, Windows PowerShell retains your location in the C: drive.
PS C:\>
PS C:\WINDOWS> Set-Location HKLM:\Software\Microsoft
PS HKLM:\Software\Microsoft>

The third command uses the **Set-Location** cmdlet to change the location to the HKCU:\Control Panel\Input Method registry key.
PS C:\>
PS HKLM:\Software\Microsoft> Set-Location "HKCU:\Control Panel\Input Method"
PS HKCU:\Control Panel\Input Method>

The fourth command uses the **Get-Location** cmdlet to find the current location on the C: drive. It uses the *PSDrive* parameter to specify the drive.
PS C:\>
PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive C



Path
----
C:\WINDOWS

The fifth command uses the **Set-Location** cmdlet to return to the C: drive. Even though the command does not specify a subdirectory, Windows PowerShell returns you to the saved location.
PS C:\>
PS HKCU:\Control Panel\Input Method> Set-Location C:
PS C:\WINDOWS>

The sixth command uses the **Get-Location** cmdlet to find the current location in the drives supported by the Windows PowerShell registry provider. **Get-Location** returns the location of the most recently accessed registry drive, HKCU.
PS C:\>
PS C:\WINDOWS> Get-Location -PSProvider registry




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

To see the current location in the HKLM: drive, you need to use the *PSDrive* parameter to specify the drive. The seventh command does just this:
PS C:\>
PS C:\WINDOWS> Get-Location -PSDrive HKLM



Path
----
HKLM:\Software\Microsoft

In diesem Beispiel wird die Verwendung von Get-Location zum Anzeigen Ihres aktuellen Standorts in verschiedenen Windows PowerShell Laufwerken veranschaulicht.

Beispiel 3: Auflisten der Speicherorte im aktuellen Standortstapel und alternative Speicherortstapel

The first command sets the current location to the Windows directory on the C: drive.
PS C:\> Set-Location C:\Windows

The second command uses the **Push-Location** cmdlet to push the current location (C:\Windows) onto the current location stack and change to the System32 subdirectory. Because no stack is specified, the current location is pushed onto the current location stack. By default, the current location stack is the unnamed default location stack.
C:\WINDOWS> Push-Location System32

The third command uses the *StackName* parameter of the **Push-Location** cmdlet to push the current location (C:\Windows\System32) onto the Stack2 stack and to change the current location to the WindowsPowerShell subirectory. If the Stack2 stack does not exist, **Push-Location** creates it.
C:\Windows\System32> Push-Location WindowsPowerShell -StackName Stack2

The fourth command uses the *Stack* parameter of the **Get-Location** cmdlet to get the locations in the current location stack. By default, the current stack is the unnamed default location stack.
C:\WINDOWS\system32\WindowsPowerShell> Get-Location -Stack
Path
----
C:\WINDOWS

The fifth command uses the *StackName* parameter of the **Get-Location** cmdlet to get the locations in the Stack2 stack.
PS C:\>
C:\WINDOWS\system32\WindowsPowerShell>get-location -stackname Stack2



Path
----
C:\WINDOWS\system32

Dieser Befehl zeigt, wie Sie die Parameter Stack und StackName von Get-Location verwenden, um die Speicherorte im aktuellen Standortstapel und alternative Speicherortstapel auflisten. Weitere Informationen zu Speicherstapeln finden Sie in den Hinweisen.

Beispiel 4: Anpassen der Windows PowerShell Eingabeaufforderung

PS C:\>
function prompt { 'PowerShell: ' + (get-location) + '> '}
PowerShell: C:\WINDOWS>

In diesem Beispiel wird gezeigt, wie die Windows PowerShell-Eingabeaufforderung angepasst wird. 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 Standardeingabeaufforderung Windows PowerShell wird durch eine spezielle Funktion namens prompt definiert. Sie können die Eingabeaufforderung in Ihrer Konsole ändern, indem Sie eine neue Funktion namens prompt erstellen.

Geben Sie den folgenden Befehl ein, um die aktuelle Eingabeaufforderungsfunktion anzuzeigen: Get-Content Function:prompt

Der Befehl beginnt mit der Funktion Schlüsselwort (keyword) gefolgt vom Funktionsnamen und der Eingabeaufforderung. Der Funktionstext wird in geschweiften Klammern ( {} ) angezeigt.

Dieser Befehl definiert eine neue Eingabeaufforderung, die mit der Zeichenfolge PowerShell beginnt: . Zum Anfügen des aktuellen Speicherorts wird ein Get-Location-Befehl verwendet, der ausgeführt wird, wenn die Eingabeaufforderungsfunktion aufgerufen wird. Die Eingabeaufforderung endet mit der Zeichenfolge " "> .

Parameter

-PSDrive

Gibt den aktuellen Speicherort im angegebenen Windows PowerShell Laufwerk an, das dieses Cmdlet im Vorgang abruft.

Wenn Sie sich im Laufwerk Certificate: befinden, können Sie für instance diesen Parameter verwenden, um Ihren aktuellen Speicherort im Laufwerk C: zu ermitteln.

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

-PSProvider

Gibt den aktuellen Speicherort auf dem Laufwerk an, das vom Windows PowerShell Anbieter unterstützt wird, den dieses Cmdlet im Vorgang abruft.

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 im Laufwerk C: befinden, können Sie diesen Parameter verwenden, um Ihren aktuellen Speicherort auf den Laufwerken des Windows PowerShellRegistry-Anbieters zu ermitteln.

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 im aktuellen Speicherortstapel anzeigt.

Verwenden Sie den StackName-Parameter , um die Speicherorte in einem anderen Standortstapel anzuzeigen. Informationen zu Speicherstapeln finden Sie in den Hinweisen.

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

-StackName

Gibt die benannten Speicherortstapel als Zeichenfolgenarray an. Geben Sie Speicherstapelnamen ein.

Verwenden Sie den Stack-Parameter , um die Speicherorte im aktuellen Standortstapel anzuzeigen. Legen Sie einen Speicherstapel mithilfe des Set-Location-Parameters als aktuellen Speicherstapel fest. Informationen zu Speicherstapeln finden Sie in den Hinweisen.

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

-UseTransaction

Schließt den Befehl in die aktive Transaktion ein. Dieser Parameter ist nur gültig, wenn gerade eine Transaktion ausgeführt wird. Weitere Informationen finden Sie unter %%amp;quot;about_Transactions%%amp;quot;.

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

Eingaben

None

Eingaben können nicht an dieses Cmdlet weitergereicht werden.

Ausgaben

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

Wenn Sie die Parameter Stack oder StackName verwenden, gibt dieses Cmdlet ein StackInfo-Objekt zurück. Andernfalls wird ein PathInfo-Objekt zurückgegeben.

Hinweise

  • Dieses Cmdlet ist für die Arbeit mit den Daten konzipiert, die von einem beliebigen Anbieter verfügbar gemacht werden. Um die Anbieter in Ihrer Sitzung aufzulisten, geben Sie ein Get-PSProvider. Weitere Informationen finden Sie unter %%amp;quot;about_Providers%%amp;quot;.

    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 Windows PowerShell können Sie Anbieterspeicherorte in Speicherstapeln speichern. Von Windows PowerShell wird ein unbenannter Standardspeicherstapel erstellt, und Sie können mehrere benannte Speicherstapel erstellen. Wenn Sie keinen Stapelnamen angeben, wird von Windows PowerShell der aktuelle Speicherstapel verwendet. Standardmäßig ist der unbenannte 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 Windows PowerShellLocation-Cmdlets wie folgt.

    • Um einem Speicherortstapel einen Speicherort hinzuzufügen, verwenden Sie das Cmdlet Push-Location.

    • Verwenden Sie das Cmdlet Pop-Location, um einen Speicherort aus einem Standortstapel abzurufen.

    • Verwenden Sie zum Anzeigen der Speicherorte im aktuellen Speicherortstapel den Stack-Parameter des Cmdlets Get-Location . Verwenden Sie zum Anzeigen der Speicherorte in einem benannten Speicherortstapel den StackName-Parameter des Cmdlets Get-Location .

    • Verwenden Sie zum Erstellen eines neuen Speicherortstapels den StackName-Parameter des Cmdlets Push-Location . Wenn Sie einen Stapel angeben, der nicht vorhanden ist, erstellt Push-Location den Stapel.

    • Verwenden Sie den StackName-Parameter des Cmdlets Set-Location , um einen Standortstapel zum aktuellen Speicherortstapel zu machen.

    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 nicht mehr das Hinzufügenoder Abrufen von Elementen aus dem Standardstapel verwenden oder diesen Cmdlet-Befehl verwenden, um die Speicherorte im unbenannten Stapel anzuzeigen. Um den unbenannten Stapel zum aktuellen Stapel zu machen, verwenden Sie den StackName-Parameter des Cmdlets Set-Location mit dem Wert $null oder einer leeren Zeichenfolge ("").