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 來顯示位置堆疊中的位置。 如需詳細資訊,請參閱 Stack 和 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:使用堆疊取得位置
此範例示範如何使用 Stack 和 StackNameGet-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
當您使用 Stack 或 StackName 參數時,此 Cmdlet 會傳回 PathInfoStack 物件。
備註
Windows PowerShell 包含下列 Get-Location的別名:
glpwd
PowerShell 支援每個程序的多個 Runspace。 每個運行空間都有自己的 目前目錄。
這與 [System.Environment]::CurrentDirectory不同。 呼叫 .NET API 或執行原生應用程式時,若未提供明確的目錄路徑,則此行為可能會發生問題。
Get-Location Cmdlet 會傳回目前 PowerShell Runspace 的目前目錄。
此 Cmdlet 的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中的提供者,請輸入 Get-PSProvider。 如需詳細資訊,請參閱 about_Providers。
PSProvider、PSDrive、Stack和 StackName 參數互動的方式取決於提供者。 某些組合會導致錯誤,例如指定磁碟驅動器和未公開該磁碟驅動器的提供者。 如果未指定任何參數,此 Cmdlet 會針對包含目前工作位置的提供者傳回 PathInfo 物件。
堆疊是最後一個先出清單,其中只能存取最近新增的專案。 您可以依您使用項目的順序,將專案新增至堆疊,然後擷取這些專案以反向順序使用。 PowerShell 可讓您將提供者位置儲存在位置堆疊中。 PowerShell 會建立未命名的預設位置堆疊,而且您可以建立多個具名位置堆疊。 如果您未指定堆疊名稱,PowerShell 會使用目前的位置堆疊。 根據預設,未命名的預設位置是目前的位置堆疊,但您可以使用 Set-Location Cmdlet 來變更目前的位置堆疊。
若要管理位置堆棧,請使用PowerShell *-Location Cmdlet,如下所示。
若要將位置新增至位置堆疊,請使用
Push-LocationCmdlet。若要從位置堆疊取得位置,請使用
Pop-LocationCmdlet。若要顯示目前位置堆疊中的位置,請使用 Cmdlet 的
Get-Location參數。 若要在具名位置堆疊中顯示位置,請使用 Cmdlet 的Get-Location參數。若要建立新的位置堆疊,請使用 Cmdlet 的
Push-Location參數。 如果您指定不存在的堆疊,Push-Location會建立堆疊。若要將位置堆疊設為目前的位置堆疊,請使用 Cmdlet 的
Set-Location參數。
只有目前的位置堆疊是目前的位置堆疊時,才能完全存取未命名的預設位置堆疊。
如果您將具名位置堆疊設為目前的位置堆疊,就無法再使用 Push-Location 或 Pop-Location Cmdlet,從預設堆疊新增或取得專案,或使用這個 Cmdlet 來顯示未命名堆疊中的位置。 若要將未命名的堆疊設為目前的堆疊,請使用 Cmdlet 的 Set-Location 參數,其值為 $null 或空字串 ("")。