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 ("Pushes") zu einem Positionsstapel hinzu. Wenn Sie einen Pfad angeben, Push-Location
verschiebt die aktuelle Position auf einen Positionsstapel, und ändert dann die aktuelle Position an die durch den Pfad angegebene Position. Mit dem Pop-Location
Cmdlet können Sie Speicherorte aus dem Standortstapel abrufen.
Standardmäßig verschiebt das Push-Location
Cmdlet die aktuelle Position 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
wird er erstellt.
Weitere Informationen zu Positionsstapeln finden Sie in den Notizen.
Beispiele
Beispiel 1
In diesem Beispiel wird die aktuelle Position auf den Standardspeicherortstapel verschoben und dann der Speicherort in C:\Windows
" geändert.
PS C:\> Push-Location C:\Windows
Beispiel 2
In diesem Beispiel wird die aktuelle Position auf den RegFunction-Stapel verschoben und die aktuelle Position an die HKLM:\Software\Policies
Position geändert.
PS C:\> Push-Location HKLM:\Software\Policies -StackName RegFunction
Sie können die Speicherort-Cmdlets auf 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 : Erstellen 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 verschiebt den aktuellen Speicherort auf einen neuen Stapel namens Stack2 und ändert dann den aktuellen Speicherort in das Startverzeichnis, dargestellt im Befehl durch das Tilde-Symbol (~
), das bei Verwendung auf einem FileSystem-Anbieterlaufwerk entspricht $HOME
.
Wenn Stack2 in der Sitzung noch nicht vorhanden ist, Push-Location
wird sie erstellt. Der zweite Befehl verwendet das Pop-Location
Cmdlet, um den ursprünglichen Speicherort (C:\
) aus dem Stack2-Stapel aufzufüllen. Ohne den StackName-Parameter Pop-Location
würde die Position aus dem nicht benannten Standardstapel angezeigt.
Weitere Informationen zu Positionsstapeln 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 wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.
Typ: | String |
Aliase: | PSPath, LP |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-PassThru
Übergibt ein Objekt, das den Speicherort darstellt, an die Pipeline. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | String |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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
wird er erstellt.
Ohne diesen Parameter Push-Location
wird der Speicherort dem aktuellen Positionsstapel hinzugefügt. Standardmäßig ist der aktuelle Speicherortstapel der unbenannte Standardspeicherortstapel, den PowerShell erstellt.
Um einen Positionsstapel zum aktuellen Positionsstapel zu machen, verwenden Sie den StackName-Parameter des Set-Location
Cmdlets. Weitere Informationen zu Positionsstapeln finden Sie in den Notizen.
Hinweis
Push-Location
Kann dem nicht benannten Standardstapel keine Position hinzufügen, es sei denn, es handelt sich um den aktuellen Positionsstapel.
Typ: | String |
Position: | Named |
Standardwert: | Default stack |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können eine Zeichenfolge, die einen Pfad (aber keinen Literalpfad) enthält, an dieses Cmdlet weiterleiten.
Ausgaben
None
Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.
Wenn Sie den PassThru-Parameter verwenden, gibt dieses Cmdlet ein PathInfo-Objekt zurück, das den aktuellen Pfad nach dem Vorgang des Cmdlets darstellt.
Hinweise
PowerShell enthält die folgenden Aliase für Push-Location
:
- Alle Plattformen:
pushd
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 systemeigene Anwendungen ausgeführt werden, ohne explizite Verzeichnispfade bereitzustellen.
Auch wenn die Speicherort-Cmdlets das prozessweite aktuelle Verzeichnis festgelegt haben, können Sie nicht davon abhängen, da ein anderer Runspace sie jederzeit ändern kann. Sie sollten die Speicherort-Cmdlets verwenden, um pfadbasierte Vorgänge mithilfe 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 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 Set-Location
Cmdlet verwenden, um den aktuellen Speicherortstapel zu ändern.
Verwenden Sie zum Verwalten von Standortstapeln die PowerShell-Speicherort-Cmdlets wie folgt.
Verwenden Sie das
Push-Location
Cmdlet, um einem Standortstapel einen Speicherort hinzuzufügen.Verwenden Sie das
Pop-Location
Cmdlet, um einen Speicherort aus einem Standortstapel abzurufen.Um die Speicherorte im aktuellen Positionsstapel anzuzeigen, verwenden Sie den Stack-Parameter des
Get-Location
Cmdlets.Verwenden Sie den StackName-Parameter des
Get-Location
Cmdlets, um die Speicherorte in einem benannten Speicherortstapel anzuzeigen.Verwenden Sie zum Erstellen eines neuen Speicherortstapels den StackName-Parameter des
Push-Location
Cmdlets. Wenn Sie einen nicht vorhandenen Stapel angeben,Push-Location
wird der Stapel erstellt.Um einen Positionsstapel zum aktuellen Positionsstapel 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 Positionsstapel machen, können Sie die Push-Location
Oder-Cmdlets Pop-Location
nicht mehr verwenden, um Elemente aus dem Standardstapel hinzuzufügen oder abzurufen oder das Get-Location
Cmdlet zum Anzeigen der Speicherorte im nicht benannten Stapel zu verwenden. Um den nicht benannten Stapel zum aktuellen Stapel zu machen, verwenden Sie den StackName-Parameter des Set-Location
Cmdlets mit einem Wert oder $null
einer leeren Zeichenfolge (""
).
Sie können sich auch auf den integrierten Alias beziehenPush-Location
. pushd
Weitere Informationen finden Sie unter about_Aliases.
Das Push-Location
Cmdlet wurde entwickelt, um mit den Daten zu arbeiten, die von einem beliebigen Anbieter verfügbar gemacht werden. Geben Sie ein, um die in Ihrer Sitzung verfügbaren Anbieter auflisten zu können Get-PSProvider
. Weitere Informationen finden Sie unter about_Providers.