Share via


Pop-Location

將目前的位置變更至最近推送到堆疊上的位置。

Syntax

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

Description

Cmdlet 會 Pop-Location 使用 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-LocationPop-Location Cmdlet 在不同的 PowerShell 提供者支援的位置之間移動。 命令會使用 的pushdPush-Location別名和 的popdPop-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

根據預設,此 Cmdlet 不會傳回任何輸出。

PathInfo

當您使用 PassThru 參數時,此 Cmdlet 會傳回 PathInfo 物件,代表 Cmdlet 作業之後目前的路徑。

備註

PowerShell 包含下列的 Pop-Location別名:

  • 所有平臺:
    • popd

PowerShell 支援每個進程的多個 Runspace。 每個 Runspace 都有自己的 目前目錄。 這與不同 [System.Environment]::CurrentDirectory。 呼叫 .NET API 或執行原生應用程式而不提供明確的目錄路徑時,這種行為可能會是問題。

即使位置 Cmdlet 已設定整個進程目前的目錄,您也無法依賴它,因為另一個 Runspace 可能會隨時變更它。 您應該使用位置 Cmdlet,使用目前 Runspace 特有的目前工作目錄來執行路徑型作業。

堆疊是一份後進先出的清單,其中只能存取最近新增的項目。 將項目新增到堆疊中時,順序與您使用它們的順序相同,然後抓取它們來使用時的順序則相反。 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 的 Set-LocationStackName 參數,其值為 $Null 或空字串 ("") 。

您也可以透過其內建別名 popd來參考 Pop-Location 。 如需詳細資訊,請參閱 about_Aliases

Pop-Location 是設計來使用任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入 Get-PSProvider。 如需詳細資訊,請參閱 about_Providers