Get-Location
取得目前工作位置或位置堆疊的相關信息。
語法
Get-Location
[-PSProvider <String[]>]
[-PSDrive <String[]>]
[-UseTransaction]
[<CommonParameters>]
Get-Location
[-Stack]
[-StackName <String[]>]
[-UseTransaction]
[<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:使用堆疊取得位置
此範例示範如何使用 的 Stack 和 StackName 參數 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:
目前位置。
類型: | String[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-PSProvider
取得指定 PowerShell 提供者所支援的磁碟驅動器目前位置。 如果指定的提供者支援一個以上的磁碟驅動器,這個 Cmdlet 會傳回最近存取的磁碟驅動器上的位置。
例如,如果您位於磁碟驅動器中 C:
,您可以使用此參數,在 PowerShell 登錄 提供者的磁碟驅動器中找到您目前的位置。
類型: | String[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Stack
指出此 Cmdlet 會顯示新增至目前位置堆疊的位置。 您可以使用 Cmdlet 將位置新增至堆疊 Push-Location
。
若要在不同的位置堆疊中顯示位置,請使用 StackName 參數。 如需位置堆疊的相關信息,請參閱 附註。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-StackName
將具名位置堆疊指定為字串陣列。 輸入一或多個位置堆疊名稱。
若要顯示目前位置堆疊中的位置,請使用 Stack 參數。 若要將位置堆疊設為目前的位置堆疊,請使用 Set-Location
Cmdlet。
此 Cmdlet 無法顯示未命名的預設堆疊中的位置,除非它是目前的堆疊。
類型: | String[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-UseTransaction
在作用中交易中包含 命令。 只有在交易進行中時,此參數才有效。 如需詳細資訊,請參閱 about_transactions。
類型: | SwitchParameter |
別名: | usetx |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
根據預設,此 Cmdlet 會 傳回 PathInfo 物件。
當您使用 Stack 或 StackName 參數時,此 Cmdlet 會傳回 PathInfoStack 物件。
備註
Windows PowerShell 包含下列的 Get-Location
別名:
gl
pwd
PowerShell 支援每個進程的多個 Runspace。 每個 Runspace 都有自己的 目前目錄。
這與不同 [System.Environment]::CurrentDirectory
。 呼叫 .NET API 或執行原生應用程式時,若未提供明確的目錄路徑,則此行為可能會發生問題。
Cmdlet 會 Get-Location
傳回目前 PowerShell Runspace 的目前目錄。
此 Cmdlet 的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中的提供者,請輸入 Get-PSProvider
。 如需詳細資訊,請參閱 about_Providers。
PSProvider、PSDrive、Stack 和 StackName 參數互動的方式取決於提供者。 某些組合會導致錯誤,例如指定磁碟驅動器和未公開該磁碟驅動器的提供者。 如果未指定任何參數,此 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-Location
或 Pop-Location
Cmdlet 從預設堆疊新增或取得專案,或使用這個 Cmdlet 來顯示未命名堆疊中的位置。 若要將未命名的堆疊設為目前的堆疊,請使用 Cmdlet 的 Set-Location
StackName 參數搭配 值$null
或空字串 (""
)。