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>