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 來顯示位置堆疊中的位置。 如需詳細資訊,請參閱 Notes 和 StackName 參數的描述

範例

範例 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:使用堆疊取得位置

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

Cmdlet Push-Location 可用來變更為三個不同的位置。 第三個推送使用不同的堆疊名稱。 的 Get-Location Stack 參數會顯示預設堆疊的內容。 的 Get-Location StackName 參數會顯示名為 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 無法顯示未命名的預設堆疊中的位置,除非它是目前的堆疊。

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

輸入

None

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

輸出

PathInfo

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

PathInfoStack

當您使用 Stack 或 StackName 參數時,此 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-Location Stack 參數。 若要在具名位置堆疊中顯示位置,請使用 Cmdlet 的 Get-Location StackName 參數。

  • 若要建立新的位置堆疊,請使用 Cmdlet 的 Push-Location StackName 參數。 如果您指定不存在的堆疊, Push-Location 請建立堆疊。

  • 若要將位置堆疊設為目前的位置堆疊,請使用 Cmdlet 的 Set-Location StackName 參數。

只有目前的位置堆疊是目前的位置堆疊時,才能完全存取未命名的預設位置堆疊。 如果您將具名位置堆疊設為目前的位置堆疊,就無法再使用 Push-LocationPop-Location Cmdlet 從預設堆疊新增或取得專案,或使用這個 Cmdlet 來顯示未命名堆疊中的位置。 若要將未命名的堆疊設為目前的堆疊,請使用 Cmdlet 的 Set-Location StackName 參數搭配 值$null或空字串 ("")。