如何在 PowerShell 中使用 Push-Location 和 Pop-Location 命令?


PowerShell 中的 **Push-Location** 命令用于将当前位置推入(添加)位置栈(后进先出 (LIFO) - 队列),而 **Pop-Location** 用于从栈中检索最后一个位置。

当 PowerShell 控制台打开时,栈中没有设置任何位置。

PS C:\> Get-Location -Stack
PS C:\>

当您键入 **Push-Location** 命令时,它会同时执行两个操作。首先,它将当前位置保存到栈顶,其次,它会浏览指定的路径。如果没有指定路径,则它只会将当前位置移动到栈中。例如:

PS C:\> Push-Location
PS C:\> Get-Location -Stack
Path
----
C:\

我们现在将指定路径:

PS C:\> Push-Location C:\Temp\
PS C:\Temp> Get-Location -Stack
Path
----
C:\
C:\

在上面的示例中,当前位置为 **C:\**,因此命令将其推入栈中并移动到该指定的目录。假设我们将另一个位置推入栈中。

PS C:\Temp> Push-Location C:\Temp\iisadministration\
PS C:\Temp\iisadministration> Get-Location -Stack
Path
----
C:\Temp
C:\
C:\

在上面的示例中,**C:\Temp** 是当前位置,因此它位于栈顶。要跳转到最后一个位置,我们需要使用 **Pop-Location** 命令。例如:

PS C:\Temp\iisadministration> Pop-Location
PS C:\Temp>

当您运行 **Pop-Location** 命令时,队列中的最后一个项目(最近的项目)将被删除。让我们检查一下栈。

PS C:\Temp> Get-Location -Stack
Path
----
C:\
C:\

您还可以创建一个新的栈来推入位置,然后您可以使用特定栈中的 **Pop-Location** 命令检索该位置。例如:

PS C:\Windows\System32> Push-Location WindowsPowerShell -StackName Stack2
PS C:\Windows\System32\WindowsPowerShell> Get-Location -StackName Stack2
Path
----
C:\Windows\System32

在上面的示例中,我们创建了一个名为 **'Stack2'** 的新栈并在其中推入了当前位置,您可以使用特定栈的 **Get-Location** 命令查看该位置已插入到新栈中。

要从该栈中检索数据:

PS C:\Windows\System32\WindowsPowerShell> Pop-Location -StackName stack2
PS C:\Windows\System32>

更新于: 2020-11-02

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告