Push-Location
將目前的位置加到位置堆疊的最頂端。
語法
Path (預設值)
Push-Location
[[-Path] <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
LiteralPath
Push-Location
[-LiteralPath <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Description
Push-Location指令長會將目前的位置加入(「推入」)到位置堆疊中。 如果你指定一條路徑,將 Push-Location 目前的位置推送到位置堆疊中,然後再將當前位置改成路徑指定的位置。 你可以用 Pop-Location cmdlet 從位置堆疊中取得位置。
預設情況下, Push-Location 指令集會將目前位置推送到目前的位置堆疊,但你可以使用 StackName 參數指定替代位置堆疊。 如果堆疊不存在,就 Push-Location 創造它。
欲了解更多地點堆疊資訊,請參閱 備註。
範例
範例 1
此範例將目前位置推入預設位置堆疊,然後將位置改為 C:\Windows。
PS C:\> Push-Location C:\Windows
範例 2
此範例將當前位置推入 RegFunction 堆疊,並將當前位置變更為該 HKLM:\Software\Policies 位置。
PS C:\> Push-Location HKLM:\Software\Policies -StackName RegFunction
你可以在任何 PowerShell 磁碟機(PSDrive)中使用 Location 指令。
範例 3
此指令會將當前位置推送到預設堆疊。 它不會改變地點。
PS C:\> Push-Location
範例 4 - 建立並使用命名堆疊
這些指令展示了如何建立並使用命名的位置堆疊。
PS C:\> Push-Location ~ -StackName Stack2
PS C:\Users\User01> Pop-Location -StackName Stack2
PS C:\>
第一個指令會將目前位置推送到名為 Stack2 的新堆疊中,然後將當前位置改為主目錄,該指令以波浪號符號( 表示~),當用於 FileSystem 提供者磁碟時相當於 $HOME。
如果 Stack2 還不存在於該會話中,則 Push-Location 會建立它。 第二個指令使用 Pop-Location cmdlet 從 Stack2 堆疊中彈出原始位置C:\()。 如果沒有 StackName 參數,會 Pop-Location 從未命名的預設堆疊彈出該位置。
欲了解更多地點堆疊資訊,請參閱 備註。
參數
-LiteralPath
指定新位置的路徑。 與 Path 參數不同, LiteralPath 參數的值是完全按照其型別使用。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | PSPath, LP |
參數集
LiteralPath
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-PassThru
將代表該位置的物件傳遞給管線。 根據預設,此 Cmdlet 不會產生任何輸出。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Path
在將目前位置加到堆疊頂端後,將你的位置改成這條路徑指定的位置。 輸入一條路徑,前往任何支援此 cmdlet 的服務提供者所在地點。 允許使用通配符。 參數名稱是選擇性的。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
Path
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-StackName
指定當前位置被加入的地點堆疊。 輸入一個位置堆疊名稱。
如果堆疊不存在,就 Push-Location 創造它。
沒有這個參數, 會 Push-Location 將該位置加入目前的位置堆疊。 預設情況下,目前的位置堆疊是 PowerShell 建立的未命名預設位置堆疊。
要讓位置堆疊成為目前的位置堆疊,請使用指令碼中的 Set-LocationStackName 參數。 欲了解更多地點堆疊資訊,請參閱 備註。
Note
Push-Location 除非是目前的地點堆疊,否則無法將位置加入未命名的預設堆疊。
參數屬性
| 類型: | String |
| 預設值: | Default stack |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
CommonParameters
此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
String
你可以用管道連接包含路徑(但不是字面路徑)的字串到這個 cmdlet。
輸出
None
根據預設,此 Cmdlet 不會傳回任何輸出。
PathInfo
當你使用 PassThru 參數時,這個 cmdlet 會回傳一個 PathInfo 物件,代表 cmdlet 操作後的當前路徑。
備註
PowerShell 包含下列 Push-Location的別名:
- 所有平臺:
pushd
PowerShell 支援每個程序的多個 Runspace。 每個運行空間都有自己的 目前目錄。
這與 不同。[System.Environment]::CurrentDirectory 當呼叫 .NET API 或執行原生應用程式但未提供明確目錄路徑時,可能會有此問題。
即使 location cmdlets 設定了整個程序的當前目錄,你也不能依賴它,因為其他跑道空間隨時可能改變它。 你應該使用 location cmdlets 來執行目前執行空間特定工作目錄的路徑操作。
堆疊是一種後進先出的清單,只有最近新增的項目可存取。 你依照使用順序將物品加入堆疊,然後反向取回使用。 PowerShell 讓你能將提供者位置儲存在位置堆疊中。
PowerShell 會建立一個無名的預設位置堆疊,你可以建立多個命名的地點堆疊。 如果你沒有指定堆疊名稱,PowerShell 會使用目前的地點堆疊。 預設情況下,未命名的預設位置是目前的位置堆疊,但你可以用 Set-Location cmdlet 來更改目前的位置堆疊。
要管理位置堆疊,請使用PowerShell Location cmdlet,如下所示。
要將位置加入位置堆疊,請使用
Push-Locationcmdlet。要從位置堆疊取得位置,請使用
Pop-Locationcmdlet。要顯示目前位置堆疊中的位置,請使用 cmdlet 的
Get-LocationStack 參數。要顯示命名位置堆疊中的位置,請使用指令碼中的
Get-LocationStackName 參數。要建立新的位置堆疊,請使用 cmdlet 的
Push-LocationStackName 參數。 如果你指定一個不存在的堆疊,則Push-Location會建立該堆疊。要讓位置堆疊成為目前的位置堆疊,請使用指令碼中的
Set-LocationStackName 參數。
未命名的預設位置堆疊只有在是目前位置堆疊時才會被完全存取。
如果你把命名地點堆疊設為目前的位置堆疊,你就不能再用 Push-Location or Pop-Location 指令匣子來新增或取得預設堆疊中的物品,也不能用 Get-Location cmdlet 顯示非命名堆疊裡的位置。 若要讓未命名堆疊成為目前的堆疊,請使用指令本的 Set-LocationStackName 參數,值為 $null 或空字串("")。
你也可以用其內建別名pushd來稱呼Push-Location。 如需詳細資訊,請參閱 about_Aliases。
Push-Location Cmdlet 的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入 Get-PSProvider。 如需詳細資訊,請參閱 about_Providers。