Pop-Location

将当前位置更改为最近推入到堆栈中的位置。

语法

Pop-Location
   [-PassThru]
   [-StackName <String>]
   [<CommonParameters>]

说明

Pop-Location cmdlet 使用 Push-Location cmdlet 将当前位置更改为最近推送到堆栈的位置。 可以从默认堆栈或通过使用 Push-Location 命令创建的堆栈弹出位置。

示例

示例 1:更改为最近位置

PS C:\> Pop-Location

此命令将你的位置更改为最近添加到当前堆栈中的位置。

示例 2:更改为命名堆栈中的最近位置

PS C:\> Pop-Location -StackName "Stack2"

此命令将你的位置更改为最近添加到 Stack2 位置堆栈中的位置。

有关位置堆栈的详细信息,请参阅 说明

示例 3:在不同提供程序的位置之间移动

PS C:\> pushd HKLM:\Software\Microsoft\PowerShell
PS HKLM:\Software\Microsoft\PowerShell> pushd Cert:\LocalMachine\TrustedPublisher
PS cert:\LocalMachine\TrustedPublisher> popd
PS HKLM:\Software\Microsoft\PowerShell> popd
PS C:\>

这些命令使用 Push-Location cmdlet Pop-Location 在不同 PowerShell 提供程序支持的位置之间移动。 这些命令使用pushd别名和Push-Locationpopd别名。Pop-Location

第一个命令将当前文件系统位置推送到堆栈上,并移动到 PowerShell 注册表提供程序支持的 HKLM 驱动器。

第二个命令将注册表位置推送到堆栈上,并移动到 PowerShell 证书提供程序支持的位置。

最后两个命令将这些位置弹出堆栈。 第一 popd 个命令返回到注册表驱动器,第二个命令将返回到文件系统驱动器。

参数

-PassThru

将表示位置的对象传递到管道。 默认情况下,此 cmdlet 将不产生任何输出。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StackName

指定弹出位置的位置堆栈。 输入位置堆栈名称。

如果没有此参数,请 Pop-Location 从当前位置堆栈弹出一个位置。 默认情况下,当前位置堆栈是 PowerShell 创建的未命名的默认位置堆栈。 若要使位置堆栈成为当前位置堆栈,请使用 cmdlet 的 Set-LocationStackName 参数。 有关位置堆栈的详细信息,请参阅 说明

Pop-Location 无法从未命名的默认堆栈弹出位置,除非它是当前位置堆栈。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

输入

None

不能通过管道将输入传递给此 cmdlet。

输出

None, System.Management.Automation.PathInfo

如果指定 PassThru 参数,则此 cmdlet 生成表示位置的 System.Management.Automation.PathInfo 对象。 否则,此 cmdlet 将不生成任何输出。

备注

PowerShell 支持每个进程的多个运行空间。 每个 Runspace 都有其自己的 当前目录。 这与 [System.Environment]::CurrentDirectory。 调用 .NET API 或运行本机应用程序而不提供显式目录路径时,此行为可能是一个问题。

即使位置 cmdlet 确实设置了进程范围的当前目录,也不能依赖它,因为其他运行空间随时可能会更改它。 应使用位置 cmdlet 使用特定于当前运行空间的当前工作目录执行基于路径的操作。

堆栈是一种后进先出的列表,在其中只能访问最后添加的项。 采用要使用项的顺序将这些项添加到堆栈,然后采用相反顺序检索这些项以供使用。 PowerShell 允许将提供程序位置存储在位置堆栈中。

PowerShell 创建未命名的默认位置堆栈,可以创建多个命名位置堆栈。 如果未指定堆栈名称,PowerShell 将使用当前位置堆栈。 默认情况下,未命名的默认位置是当前位置堆栈,但可以使用 Set-Location cmdlet 更改当前位置堆栈。

若要管理位置堆栈,请使用 PowerShell *-Location cmdlet,如下所示:

  • 若要将位置添加到位置堆栈,请使用 Push-Location cmdlet。

  • 若要从位置堆栈获取位置,请使用 Pop-Location cmdlet。

  • 若要显示当前位置堆栈中的位置,请使用 cmdlet 的 Get-LocationStack 参数。

  • 若要在命名位置堆栈中显示位置,请使用 cmdlet 的 Get-LocationStackName 参数。

  • 若要创建新的位置堆栈,请使用 cmdlet 的 Push-LocationStackName 参数。 如果指定不存在的堆栈, Push-Location 则创建堆栈。

  • 若要使位置堆栈成为当前位置堆栈,请使用 cmdlet 的 Set-LocationStackName 参数。

未命名的默认位置堆栈仅在其是当前位置堆栈时处于完全可访问状态。 如果将命名位置堆栈设为当前位置堆栈,则不能再使用 Push-LocationPop-Location cmdlet 从默认堆栈添加或获取项,或使用 Get-Location cmdlet 显示未命名堆栈中的位置。 若要将未命名的堆栈设置为当前堆栈,请使用 cmdlet $NullSet-LocationStackName 参数的值或空字符串 ("") 。

还可以通过内置别名popd来引用Pop-Location它。 有关详细信息,请参阅 about_Aliases

Pop-Location 旨在处理任何提供程序公开的数据。 若要列出会话中可用的提供程序,请键入 Get-PSProvider。 有关详细信息,请参阅 about_Providers