Push-Location
Fügt die aktuelle Position am oberen Rand eines Positionsstapels hinzu.
Syntax
Push-Location
[[-Path] <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Push-Location
[-LiteralPath <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Push-Location
fügt den aktuellen Speicherort ("Pushes") zu einem Positionsstapel hinzu. Wenn Sie einen Pfad angeben, verschiebt Push-Location
die aktuelle Position auf einen Positionsstapel und ändert dann die aktuelle Position an die durch den Pfad angegebene Position. Sie können das Cmdlet Pop-Location
verwenden, um Speicherorte aus dem Standortstapel abzurufen.
Standardmäßig verschiebt das Cmdlet Push-Location
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, erstellt Push-Location
ihn.
Weitere Informationen zu Positionsstapeln finden Sie in den Notes.
Beispiele
Beispiel 1
In diesem Beispiel wird die aktuelle Position auf den Standardspeicherortstapel verschoben und dann 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 die aktuelle Position auf den Standardstapel verschoben. Er ändert den Speicherort nicht.
PS C:\> Push-Location
Beispiel 4 : Erstellen und Verwenden eines benannten Stapels
Diese Befehle zeigen, wie Sie einen benannten Speicherortstapel erstellen und verwenden.
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 mit dem Namen Stack2 und ändert dann den aktuellen Speicherort in das Startverzeichnis, dargestellt im Befehl durch das Tilde-Symbol (~
), das bei Verwendung auf einem FileSystem-Anbieterlaufwerk $HOME
entspricht.
Wenn Stack2 in der Sitzung noch nicht vorhanden ist, erstellt Push-Location
sie. Der zweite Befehl verwendet das cmdlet Pop-Location
, um den ursprünglichen Speicherort (C:\
) aus dem Stack2-Stapel zu füllen. Ohne den StackName Parameter würde Pop-Location
die Position aus dem nicht benannten Standardstapel auffüllen.
Weitere Informationen zu Positionsstapeln finden Sie in den Notes.
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 Wildcards interpretiert. Wenn der Pfad Escapezeichen enthält, schließen Sie ihn in einfache Anführungszeichen ein. 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 die Position an die Pipeline darstellt. Standardmäßig generiert dieses Cmdlet keine Ausgabe.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Path
Ändert Ihre Position an die position, die durch diesen Pfad angegeben wird, nachdem sie die aktuelle Position am Anfang des Stapels hinzugefügt (pusht). Geben Sie einen Pfad zu einem beliebigen Speicherort ein, dessen Anbieter dieses Cmdlet unterstützt. Wildcards sind zulässig. Der Parametername ist optional.
Typ: | String |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | True |
-StackName
Gibt den Speicherortstapel an, dem der aktuelle Speicherort hinzugefügt wird. Geben Sie einen Speicherortstapelnamen ein.
Wenn der Stapel nicht vorhanden ist, erstellt Push-Location
ihn.
Ohne diesen Parameter fügt Push-Location
die Position zum aktuellen Positionsstapel hinzu. 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 cmdlets Set-Location
. Weitere Informationen zu Positionsstapeln finden Sie in den Notes.
Anmerkung
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 parameter PassThru 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 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.
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, 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-Speicherort-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 Cmdlets
Get-Location
.Verwenden Sie zum Erstellen eines neuen Speicherortstapels 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 Speicherortstapel 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 das Cmdlet Get-Location
, 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 (""
).
Sie können auch auf Push-Location
durch den integrierten Alias pushd
verweisen. Weitere Informationen finden Sie unter about_Aliases.
Das Cmdlet Push-Location
ist für die Arbeit mit den Daten konzipiert, die von einem beliebigen Anbieter verfügbar gemacht werden. Geben Sie Get-PSProvider
ein, um die in Ihrer Sitzung verfügbaren Anbieter auflisten zu können. Weitere Informationen finden Sie unter about_Providers.