Push-Location
Fügt den aktuellen Speicherort an oberster Stelle eines Speicherstapels hinzu.
Syntax
Push-Location
[[-Path] <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Push-Location
[-LiteralPath <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Beschreibung
Das Push-Location
Cmdlet fügt den aktuellen Speicherort einem Speicherortstapel hinzu ("pusht"). Wenn Sie einen Pfad angeben, Push-Location
pusht den aktuellen Speicherort auf einen Speicherortstapel und ändert dann den aktuellen Speicherort in den im Pfad angegebenen Speicherort. Sie können das Pop-Location
Cmdlet verwenden, um Speicherorte aus dem Standortstapel abzurufen.
Standardmäßig pusht das Push-Location
Cmdlet den aktuellen Speicherort auf den aktuellen Speicherortstapel. Sie können jedoch den StackName-Parameter verwenden, um einen alternativen Speicherortstapel anzugeben. Wenn der Stapel nicht vorhanden ist, Push-Location
erstellt er ihn.
Weitere Informationen zu Standortstapeln finden Sie in den Notizen.
Beispiele
Beispiel 1
In diesem Beispiel wird der aktuelle Speicherort auf den Standardspeicherortstapel gepusht und der Speicherort C:\Windows
in geändert.
PS C:\> Push-Location C:\Windows
Beispiel 2
In diesem Beispiel wird der aktuelle Speicherort auf den RegFunction-Stapel gepusht und der aktuelle Speicherort in den HKLM:\Software\Policies
Speicherort geändert.
PS C:\> Push-Location HKLM:\Software\Policies -StackName RegFunction
Sie können die Location-Cmdlets in jedem PowerShell-Laufwerk (PSDrive) verwenden.
Beispiel 3
Mit diesem Befehl wird der aktuelle Speicherort auf den Standardstapel verschoben. Der Speicherort wird nicht geändert.
PS C:\> Push-Location
Beispiel 4: Create und Verwenden eines benannten Stapels
Diese Befehle veranschaulichen das Erstellen und Verwenden eines benannten Speicherstapels.
PS C:\> Push-Location ~ -StackName Stack2
PS C:\Users\User01> Pop-Location -StackName Stack2
PS C:\>
Der erste Befehl pusht den aktuellen Speicherort auf einen neuen Stapel mit dem Namen Stack2 und ändert dann den aktuellen Speicherort in das Basisverzeichnis, das im Befehl durch das Tildensymbol (~
) dargestellt wird, das bei Verwendung auf einem FileSystem-Anbieterlaufwerk und entspricht $HOME
$env:USERPROFILE
.
Wenn Stack2 noch nicht in der Sitzung vorhanden ist, Push-Location
erstellt es. Der zweite Befehl verwendet das Pop-Location
Cmdlet, um den ursprünglichen Speicherort (C:\
) aus dem Stack2-Stapel aufzufüllen. Ohne den StackName-ParameterPop-Location
würde der Speicherort aus dem unbenannten Standardstapel aufgefüllt.
Weitere Informationen zu Standortstapeln finden Sie in den Notizen.
Parameter
-LiteralPath
Gibt den Pfad zum neuen Speicherort an. Im Gegensatz zum Path-Parameter wird der Wert des LiteralPath-Parameters genau so verwendet, wie er eingegeben wurde. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einzelne Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Übergibt ein Objekt, das den Speicherort darstellt, an die Pipeline. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Ändert den Speicherort in den von diesem Pfad angegebenen Speicherort, nachdem der aktuelle Speicherort dem Stapel an oberster Position hinzugefügt wurde. Geben Sie einen Pfad zu einem Speicherort ein, dessen Anbieter dieses Cmdlet unterstützt. Platzhalter sind zulässig. Der Parametername ist optional.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-StackName
Gibt den Speicherstapel an, dem der aktuelle Speicherort hinzugefügt wird. Geben Sie einen Speicherstapelnamen ein.
Wenn der Stapel nicht vorhanden ist, Push-Location
erstellt er ihn.
Ohne diesen Parameter Push-Location
wird der Speicherort dem aktuellen Speicherortstapel hinzugefügt. Standardmäßig ist der aktuelle Speicherortstapel der unbenannte Standardspeicherortstapel, den PowerShell erstellt.
Um einen Standortstapel zum aktuellen Speicherortstapel zu machen, verwenden Sie den StackName-Parameter des Set-Location
Cmdlets. Weitere Informationen zu Standortstapeln finden Sie in den Notizen.
Hinweis
Push-Location
Kann dem unbenannten Standardstapel keinen Speicherort hinzufügen, es sei denn, es handelt sich um den aktuellen Speicherortstapel.
Type: | String |
Position: | Named |
Default value: | Default stack |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Eingaben
Sie können eine Zeichenfolge, die einen Pfad (aber keinen Literalpfad) enthält, an übergeben Push-Location
.
Ausgaben
None or System.Management.Automation.PathInfo
Wenn Sie den PassThru-Parameter verwenden, Push-Location
wird ein System.Management.Automation.PathInfo-Objekt generiert, das den Speicherort darstellt. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.
Hinweise
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.
Selbst wenn die Standort-Cmdlets das prozessweite aktuelle Verzeichnis festgelegt haben, können Sie sich nicht darauf verlassen, da es jederzeit von einem anderen Runspace geändert werden kann. Sie sollten die Standort-Cmdlets verwenden, um pfadbasierte Vorgänge unter Verwendung des aktuellen Arbeitsverzeichnisses auszuführen, das für den aktuellen Runspace spezifisch ist.
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 Speicherort 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 des
Get-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 zum Hinzufügen oder Abrufen von Elementen aus dem Standardstapel verwenden oder das Get-Location
Cmdlet verwenden, um die Speicherorte im unbenannten 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 (""
).
Sie können auch auf den Push-Location
integrierten Alias verweisen. pushd
Weitere Informationen finden Sie unter about_Aliases.
Das Push-Location
Cmdlet ist für die Verwendung von Daten konzipiert, die von einem beliebigen Anbieter verfügbar gemacht werden. Geben Sie ein Get-PSProvider
, um die in Ihrer Sitzung verfügbaren Anbieter aufzulisten. Weitere Informationen finden Sie unter about_Providers.