共用方式為


Get-Location

取得目前工作位置或位置堆疊的相關信息。

語法

Location (預設值)

Get-Location
    [-PSProvider <String[]>]
    [-PSDrive <String[]>]
    [-UseTransaction]
    [<CommonParameters>]

Stack

Get-Location
    [-Stack]
    [-StackName <String[]>]
    [-UseTransaction]
    [<CommonParameters>]

Description

Get-Location Cmdlet 會取得代表目前目錄的物件,這與列印工作目錄 (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:使用堆疊取得位置

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

Push-Location Cmdlet 可用來變更為三個不同的位置。 第三個推送使用不同的堆疊名稱。 Get-Location 參數會顯示預設堆疊的內容。 Get-Location 參數會顯示名為 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: 磁碟驅動器中的目前位置。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

Location
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-PSProvider

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

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

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

Location
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Stack

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

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

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

Stack
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-StackName

將具名位置堆疊指定為字串陣列。 輸入一或多個位置堆疊名稱。

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

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

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

Stack
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-UseTransaction

在作用中交易中包含 命令。 只有在交易進行中時,此參數才有效。 如需詳細資訊,請參閱 about_Transactions

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:usetx

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

None

您不能將物件透過管道傳送到此 Cmdlet。

輸出

PathInfo

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

PathInfoStack

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

備註

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

  • gl
  • pwd

PowerShell 支援每個程序的多個 Runspace。 每個運行空間都有自己的 目前目錄。 這與 [System.Environment]::CurrentDirectory不同。 呼叫 .NET API 或執行原生應用程式時,若未提供明確的目錄路徑,則此行為可能會發生問題。 Get-Location Cmdlet 會傳回目前 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 參數。 若要在具名位置堆疊中顯示位置,請使用 Cmdlet 的 Get-Location 參數。

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

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

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