如何在 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>
广告