共用方式為


Get-Location

取得目前工作位置或位置堆疊的相關資訊。

Syntax

Get-Location
   [-PSProvider <String[]>]
   [-PSDrive <String[]>]
   [<CommonParameters>]
Get-Location
   [-Stack]
   [-StackName <String[]>]
   [<CommonParameters>]

Description

Cmdlet Get-Location 會取得代表目前目錄的物件,與列印工作目錄 (pwd) 命令類似。

當您在PowerShell磁碟驅動器之間移動時,PowerShell 會將您的位置保留在每個磁碟驅動器中。 您可以使用此 Cmdlet 來尋找每個磁碟驅動器中的位置。

您可以使用此 Cmdlet 在執行時間取得目前的目錄,並在函式和腳本中使用,例如在 PowerShell 提示字元中顯示目前目錄的函式中。

您也可以使用此 Cmdlet 來顯示位置堆疊中的位置。 如需詳細資訊,請參閱 StackStackName 參數的附註和描述。

範例

範例 1:顯示您目前的磁碟驅動器位置

此命令會在目前的 PowerShell 磁碟驅動器中顯示您的位置。

PS C:\Windows> Get-Location

Path
----
C:\Windows

例如,如果您位於 Windows 磁碟驅動器的 C: 目錄中,則會顯示該目錄的路徑。

範例 2:顯示不同磁碟驅動器的目前位置

此範例示範如何使用 Get-Location ,在不同的PowerShell磁碟驅動器中顯示您目前的位置。 Set-Location 用來將位置變更為不同 PSDrive 上的數個不同路徑。

PS C:\> Set-Location C:\Windows
PS C:\Windows> Set-Location HKLM:\Software\Microsoft
PS HKLM:\Software\Microsoft> Set-Location "HKCU:\Control Panel\Input Method"
PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive C

Path
----
C:\Windows

PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive HKLM

Path
----
HKLM:\Software\Microsoft

PS HKCU:\Control Panel\Input Method> Set-Location C:
PS C:\Windows> Get-Location -PSProvider Registry

Path
----
HKCU:\Control Panel\Input Method

範例 3:使用堆疊取得位置

此範例示範如何使用 的 Get-LocationStackStackName 參數來列出目前位置堆疊和替代位置堆疊中的位置。

Cmdlet Push-Location 可用來變更為三個不同的位置。 第三個推送會使用不同的堆疊名稱。 的 Stack 參數 Get-Location 會顯示預設堆疊的內容。 的 Get-LocationStackName 參數會顯示名為 Stack2的堆疊內容。

PS C:\> Push-Location C:\Windows
PS C:\Windows>Push-Location System32
PS C:\Windows\System32>Push-Location WindowsPowerShell -StackName Stack2
C:\Windows\System32\WindowsPowerShell>Get-Location -Stack

Path
----
C:\Windows
C:\

C:\Windows\System32\WindowsPowerShell>Get-Location -StackName Stack2

Path
----
C:\Windows\System32

範例 4:自定義 PowerShell 提示字元

此範例示範如何自定義PowerShell提示字元。

PS C:\>
function prompt { 'PowerShell: ' + (Get-Location) + '> '}
PowerShell: C:\>

定義提示的函式包含 Get-Location 命令,每當提示出現在控制台中時就會執行。

預設 PowerShell 提示字元的格式是由名為 prompt的特殊函式所定義。 您可以建立名為 prompt的新函式,以變更控制台中的提示。

若要查看目前的提示字元函式,請輸入下列命令: Get-Content Function:\prompt

參數

-PSDrive

取得指定之 PowerShell 磁碟驅動器中的目前位置。

例如,如果您是在磁碟驅動器中 Cert: ,您可以使用此參數來尋找磁碟驅動器中的 C: 目前位置。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

取得指定之 PowerShell 提供者所支援的磁碟驅動器目前位置。 如果指定的提供者支援多個磁碟驅動器,此 Cmdlet 會傳回最近存取磁碟驅動器上的位置。

例如,如果您是在磁碟驅動器中 C: ,您可以使用此參數,在 PowerShell 登錄 提供者的磁碟驅動器中尋找您目前的位置。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Stack

指出此 Cmdlet 會顯示新增至目前位置堆疊的位置。 您可以使用 Cmdlet 將位置新增至堆疊 Push-Location

若要在不同的位置堆疊中顯示位置,請使用 StackName 參數。 如需位置堆疊的相關信息,請參閱 附註

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StackName

以字串陣列的形式指定具名位置堆疊。 輸入一或多個位置堆疊名稱。

若要顯示目前位置堆疊中的位置,請使用 Stack 參數。 若要讓位置堆疊成為目前的位置堆疊,請使用 Set-Location Cmdlet。

除非此 Cmdlet 是目前的堆疊,否則此 Cmdlet 無法顯示未命名的預設堆疊中的位置。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

輸入

None

您無法使用管線將物件傳送至此 Cmdlet。

輸出

PathInfo

根據預設,此 Cmdlet 會傳回 PathInfo 物件。

PathInfoStack

當您使用 StackStackName 參數時,此 Cmdlet 會傳回 PathInfoStack 物件。

備註

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

  • 所有平臺:

    • gl
    • pwd

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

此 Cmdlet 是針對與任何提供者公開的資料搭配使用所設計。 若要列出工作階段中的提供者,請輸入 Get-PSProvider。 如需詳細資訊,請參閱 about_Providers

PSProviderPSDriveStackStackName 參數互動的方式取決於提供者。 某些組合將會導致錯誤,例如既指定磁碟機又指定未公開該磁碟機的提供者。 如果未指定任何參數,此 Cmdlet 會傳回包含目前工作位置之提供者的 PathInfo 物件。

堆疊是最後一個先出清單,其中只能存取最近新增的專案。 將項目新增到堆疊中時,順序與您使用它們的順序相同,然後抓取它們來使用時的順序則相反。 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 從預設堆疊新增或取得專案,或使用這個 Cmdlet 來顯示未命名堆疊中的位置。 若要讓未命名的堆疊成為目前的堆疊,請使用 Cmdlet 的 Set-LocationStackName 參數,其值為 $null 或空字串 ("") 。