Push-Location
在位置堆疊頂端新增目前的位置。
Syntax
Push-Location
[[-Path] <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Push-Location
[-LiteralPath <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Description
Cmdlet Push-Location
會將 (“pushes”) 目前位置新增至位置堆棧。 如果您指定路徑, Push-Location
請將目前位置推送至位置堆疊,然後將目前位置變更為路徑所指定的位置。 您可以使用 Pop-Location
Cmdlet 從位置堆疊取得位置。
根據預設, Push-Location
Cmdlet 會將目前的位置推送至目前的位置堆棧,但您可以使用 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 磁碟驅動器中使用 Location Cmdlet, (PSDrive) 。
範例 3
此命令將目前位置推入至預設堆疊上方。 它不會變更位置。
PS C:\> Push-Location
範例 4 - Create 並使用具名堆疊
這些命令顯示如何建立和使用命名位置堆疊。
PS C:\> Push-Location ~ -StackName Stack2
PS C:\Users\User01> Pop-Location -StackName Stack2
PS C:\>
第一個命令會將目前位置推送至名為 Stack2 的新堆疊,然後將目前位置變更為主目錄,並以 tilde 符號表示 () ~
,這在 FileSystem 提供者磁碟驅動器上使用時相當於 $HOME
。
如果會話中還沒有 Stack2, Push-Location
請建立它。 第二個命令會 Pop-Location
使用 Cmdlet 從 Stack2 堆棧快顯原始位置 (C:\
) 。 如果沒有 StackName 參數, Pop-Location
則會從未命名的預設堆疊中快顯位置。
如需位置堆疊的詳細資訊,請參閱 附註。
參數
-LiteralPath
指定新位置的路徑。 與 Path 參數不同,LiteralPath 參數的值將完全依照其輸入值來使用。 沒有字元會被視為萬用字元。 如果路徑包含逸出字元,請將它括在單引號中。 單引號會告訴PowerShell不要將任何字元解譯為逸出序列。
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
將代表位置的物件傳遞至管線。 根據預設,此 Cmdlet 不會產生任何輸出。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
變更您的位置為此路徑所指定的位置 (在將目前位置新增 (推入) 至堆疊頂端之後)。 輸入其提供者支援此 Cmdlet 的任何位置路徑。 允許使用萬用字元。 參數名稱為選擇性。
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-StackName
指定要新增目前位置的位置堆疊。 請輸入位置堆疊名稱。
如果堆疊不存在, Push-Location
請加以建立。
如果沒有此參數, Push-Location
請將位置新增至目前的位置堆疊。 根據預設,目前的位置堆疊是PowerShell所建立的未命名預設位置堆疊。
若要將位置堆疊設為目前的位置堆疊,請使用 Cmdlet 的 Set-Location
StackName 參數。 如需位置堆疊的詳細資訊,請參閱 附註。
注意
Push-Location
除非位置是目前的位置堆疊,否則無法將位置新增至未命名的預設堆疊。
Type: | String |
Position: | Named |
Default value: | Default stack |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
輸入
您可以使用管線將包含路徑的字串傳送至此 Cmdlet (,但不能使用常值路徑) 。
輸出
None
根據預設,此 Cmdlet 不會傳回任何輸出。
當您使用 PassThru 參數時,此 Cmdlet 會傳回 PathInfo 物件,代表 Cmdlet 作業之後目前的路徑。
備註
PowerShell 包含下列的 Push-Location
別名:
- 所有平臺:
pushd
PowerShell 支援每個進程的多個 Runspace。 每個 Runspace 都有自己的 目前目錄。
這與不同 [System.Environment]::CurrentDirectory
。 呼叫 .NET API 或執行原生應用程式而不提供明確的目錄路徑時,這種行為可能會是問題。
即使位置 Cmdlet 已設定整個進程目前的目錄,您也無法依賴它,因為另一個 Runspace 可能會隨時變更它。 您應該使用位置 Cmdlet,使用目前 Runspace 特有的目前工作目錄來執行路徑型作業。
堆疊是最後一個先出清單,其中只能存取最近新增的專案。 將項目新增到堆疊中時,順序與您使用它們的順序相同,然後抓取它們來使用時的順序則相反。 PowerShell 可讓您將提供者位置儲存在位置堆疊中。
PowerShell 會建立未命名的預設位置堆疊,而且您可以建立多個具名位置堆疊。 如果您未指定堆疊名稱,PowerShell 會使用目前的位置堆疊。 根據預設,未命名的預設位置是目前的位置堆疊,但您可以使用 Set-Location
Cmdlet 來變更目前的位置堆疊。
若要管理位置堆棧,請使用PowerShell位置 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 來顯示未命名堆疊中的位置。 若要讓未命名的堆疊成為目前的堆疊,請使用 Cmdlet 的 Set-Location
StackName 參數,其值為 $null
或空字串 (""
) 。
您也可以透過其內建別名 pushd
來參考 Push-Location
。 如需詳細資訊,請參閱 about_Aliases。
Cmdlet Push-Location
的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入 Get-PSProvider
。 如需詳細資訊,請參閱 about_Providers。