Pop-Location
将当前位置更改为最近推入到堆栈中的位置。
语法
Pop-Location
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
说明
cmdlet Pop-Location
使用 cmdlet 将当前位置更改为最近推送到堆栈的位置 Push-Location
。 可以使用 命令从默认堆栈或从创建的 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
和 Pop-Location
cmdlet 在不同 PowerShell 提供程序支持的位置之间移动。 命令使用 的pushd
Push-Location
别名和 popd
的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-Location
StackName 参数。 有关位置堆栈的详细信息,请参阅 说明。
Pop-Location
无法从未命名的默认堆栈弹出位置,除非它是当前位置堆栈。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
输入
None
不能通过管道将对象传递给此 cmdlet。
输出
None
默认情况下,此 cmdlet 不返回任何输出。
使用 PassThru 参数时,此 cmdlet 返回一个 PathInfo 对象,该对象表示 cmdlet 操作后的当前路径。
备注
PowerShell 包含以下别名 Pop-Location
:
- 所有平台:
popd
PowerShell 支持每个进程多个运行空间。 每个运行空间都有自己的 当前目录。
这与 [System.Environment]::CurrentDirectory
不同。 调用 .NET API 或运行本机应用程序而不提供显式目录路径时,此行为可能是一个问题。
即使位置 cmdlet 确实设置了进程范围的当前目录,也不能依赖它,因为另一个运行空间可能随时更改它。 应使用特定于当前运行空间的当前工作目录,使用位置 cmdlet 执行基于路径的操作。
堆栈是一种后进先出的列表,在其中只能访问最后添加的项。 采用要使用项的顺序将这些项添加到堆栈,然后采用相反顺序检索这些项以供使用。 PowerShell 允许将提供程序位置存储在位置堆栈中。
PowerShell 创建未命名的默认位置堆栈,你可以创建多个命名位置堆栈。 如果未指定堆栈名称,PowerShell 将使用当前位置堆栈。 默认情况下,未命名的默认位置是当前位置堆栈,但你可以使用 Set-Location
cmdlet 更改当前位置堆栈。
若要管理位置堆栈,请使用 PowerShell *-Location
cmdlet,如下所示:
若要将位置添加到位置堆栈,请使用
Push-Location
cmdlet。若要从位置堆栈获取位置,请使用
Pop-Location
cmdlet。若要显示当前位置堆栈中的位置,请使用 cmdlet 的
Get-Location
Stack 参数。若要显示命名位置堆栈中的位置,请使用 cmdlet 的
Get-Location
StackName 参数。若要创建新的位置堆栈,请使用 cmdlet 的
Push-Location
StackName 参数。 如果指定的堆栈不存在,Push-Location
将创建堆栈。若要使位置堆栈成为当前位置堆栈,请使用 cmdlet 的
Set-Location
StackName 参数。
未命名的默认位置堆栈仅在其是当前位置堆栈时处于完全可访问状态。
如果将命名位置堆栈设为当前位置堆栈,则不能再使用 Push-Location
或 Pop-Location
cmdlet 添加或获取默认堆栈中的项,也不能再使用 Get-Location
cmdlet 在未命名堆栈中显示位置。 若要使未命名的堆栈成为当前堆栈,请使用值为 $Null
的 cmdlet 的 Set-Location
StackName 参数或空字符串 (""
) 。
还可以通过其内置别名 popd
来引用 Pop-Location
。 有关详细信息,请参阅 about_Aliases。
Pop-Location
旨在处理由任何提供程序公开的数据。 若要列出会话中可用的提供程序,请键入 Get-PSProvider
。 有关详细信息,请参阅 about_Providers。