Get-Location
取得目前工作地點或地點堆疊的資訊。
語法
Location (預設值)
Get-Location
[-PSProvider <String[]>]
[-PSDrive <String[]>]
[<CommonParameters>]
Stack
Get-Location
[-Stack]
[-StackName <String[]>]
[<CommonParameters>]
Description
cmdlet Get-Location 會接收一個物件,代表目前的目錄,類似類 Unix 作業系統中的 print working directory (pwd) 指令。
當你在 PowerShell 硬碟間移動時,PowerShell 會保留你在每個硬碟中的位置。 你可以用這個 cmdlet 來找到你在每個硬碟中的位置。
你可以用這個 cmdlet 在執行時取得目前的目錄,並在函式和腳本中使用,例如在 PowerShell 提示字元中顯示目前目錄的函式中。
你也可以用這個 cmdlet 來顯示位置堆疊中的位置。 欲了解更多資訊,請參閱備註以及 堆疊 與 堆疊名稱 參數的說明。
範例
範例 1:顯示你目前的硬碟位置
這個指令會顯示你在目前 PowerShell 磁碟機中的位置。
PS C:\Windows> Get-Location
Path
----
C:\Windows
例如,如果你在 Windows 磁碟的 C: 目錄中,它會顯示該目錄的路徑。
範例二:顯示你目前的位置給不同硬碟
這個範例展示了如何使用 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
範例三:利用堆疊取得位置
此範例展示了如何使用 的 Stack 和 Get-Location 參數來列出目前位置堆疊及替代位置堆疊中的位置。
Push-Location指令令可用來切換到三個不同的地點。 第三次推送則使用不同的堆疊名稱。 堆Get-Location參數顯示預設堆疊的內容。
StackNameGet-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 提供者支援的硬碟目前位置。 若指定的提供者支援多顆硬碟,該指令檔會回傳最近存取的硬碟位置。
例如,如果你在硬碟裡 C: ,可以用這個參數在 PowerShell 登錄 檔提供者的硬碟中找到你目前的位置。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
Location
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Stack
表示此指令本顯示新增到目前位置堆疊的位置。 你可以用 Push-Location cmdlet 把位置加入堆疊。
若要顯示不同位置堆疊中的位置,請使用 StackName 參數。 關於位置堆疊的資訊,請參閱 備註。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
Stack
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-StackName
指定以字串陣列形式,指定命名位置堆疊。 輸入一個或多個地點堆疊名稱。
要顯示目前位置堆疊中的位置,請使用 堆疊 參數。 要讓位置堆疊變成目前的位置堆疊,請使用 Set-Location cmdlet。
此指令小程式無法顯示未命名預設堆疊中的位置,除非是目前的堆疊。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
Stack
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | 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 物件。
備註
PowerShell 包含下列 Get-Location的別名:
所有月台:
glpwd
PowerShell 支援每個程序的多個 Runspace。 每個運行空間都有自己的 目前目錄。
這與 不同。[System.Environment]::CurrentDirectory 當呼叫 .NET API 或執行原生應用程式但未提供明確目錄路徑時,可能會有此問題。
cmdlet Get-Location 會回傳目前 PowerShell 執行空間的目錄。
此 Cmdlet 的設計目的是要處理任何提供者所公開的數據。 若要列出會話中的提供者,請輸入 Get-PSProvider。 如需詳細資訊,請參閱 about_Providers。
PSProvider、PSDrive、Stack 與 StackName 參數的互動方式取決於提供者。 某些組合會導致錯誤,例如指定一個磁碟機和不公開該磁碟機的提供者。 若未指定參數,此 cmdlet 會回傳包含當前工作位置的提供者 PathInfo 物件。
堆疊是一種後進先出的清單,只有最近新增的項目可存取。 你依照使用順序將物品加入堆疊,然後反向取回使用。 PowerShell 讓你能將提供者位置儲存在位置堆疊中。 PowerShell 會建立一個無名的預設位置堆疊,你可以建立多個命名的地點堆疊。 如果你沒有指定堆疊名稱,PowerShell 會使用目前的地點堆疊。 預設情況下,未命名的預設位置是目前的位置堆疊,但你可以用 Set-Location cmdlet 來更改目前的位置堆疊。
要管理位置堆疊,請使用PowerShell *-Location 指令,內容如下。
要將位置加入位置堆疊,請使用
Push-Locationcmdlet。要從位置堆疊取得位置,請使用
Pop-Locationcmdlet。要顯示目前位置堆疊中的位置,請使用 cmdlet 的
Get-Location參數。 要顯示命名位置堆疊中的位置,請使用指令碼中的Get-Location參數。要建立新的位置堆疊,請使用 cmdlet 的
Push-Location參數。 如果你指定一個不存在的堆疊,則Push-Location會建立該堆疊。要讓位置堆疊成為目前的位置堆疊,請使用指令碼中的
Set-Location參數。
未命名的預設位置堆疊只有在是目前位置堆疊時才會被完全存取。
如果你把命名的地點堆疊設為目前的地點堆疊,你就不能再用 Push-Location or Pop-Location 指令匣來新增或取得預設堆疊中的物品,也不能用這個指令匣來顯示未命名堆疊裡的位置。 若要讓未命名堆疊成為目前的堆疊,請使用指令本的 Set-Location 參數,值為 $null 或空字串("")。