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-Location cmdlet。

  • 要從位置堆疊取得位置,請使用 Pop-Location cmdlet。

  • 要顯示目前位置堆疊中的位置,請使用 cmdlet 的 Get-LocationStack 參數。

  • 要顯示命名位置堆疊中的位置,請使用指令碼中的 Get-LocationStackName 參數。

  • 要建立新的位置堆疊,請使用 cmdlet 的 Push-Location StackName 參數。 如果你指定一個不存在的堆疊,則 Push-Location 會建立該堆疊。

  • 要讓位置堆疊成為目前的位置堆疊,請使用指令碼中的 Set-Location StackName 參數。

未命名的預設位置堆疊只有在是目前位置堆疊時才會被完全存取。 如果你把命名地點堆疊設為目前的位置堆疊,你就不能再用 Push-Location or Pop-Location 指令匣子來新增或取得預設堆疊中的物品,也不能用 Get-Location cmdlet 顯示非命名堆疊裡的位置。 若要讓未命名堆疊成為目前的堆疊,請使用指令本的 Set-LocationStackName 參數,值為 $null 或空字串("")。

你也可以用其內建別名pushd來稱呼Push-Location。 如需詳細資訊,請參閱 about_Aliases。

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