Set-Location
將目前的工作位置設定為指定的位置。
Set-Location
[[-Path] <String>]
[-PassThru]
[-UseTransaction]
[<CommonParameters>]
Set-Location
-LiteralPath <String>
[-PassThru]
[-UseTransaction]
[<CommonParameters>]
Set-Location
[-PassThru]
[-StackName <String>]
[-UseTransaction]
[<CommonParameters>]
Set-Location
Cmdlet 會將工作位置設定為指定的位置。 該位置可以是目錄、子目錄、登錄位置或任何提供者路徑。
您也可以使用 StackName 參數,將具名位置堆棧設為目前的位置堆疊。 如需位置堆疊的詳細資訊,請參閱附註。
PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>
此命令會將目前位置設定為 HKLM:
磁碟驅動器的根目錄。
PS C:\> Set-Location -Path "Env:\" -PassThru
Path
----
Env:\
PS Env:\>
此命令會將目前位置設定為 Env:
磁碟驅動器的根目錄。 它會使用 PassThru 參數來指示 PowerShell 傳回代表 Env:\
位置的 PathInfo 物件。
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>
第一個命令會將位置設定為登錄提供者中 HKLM:
磁碟驅動器的根目錄。
第二個命令會將位置設定為 FileSystem 提供者中 C:
磁碟驅動器的目前位置。
當磁碟驅動器名稱以 <DriveName>:
格式指定時(不含反斜杠),Cmdlet 會將位置設定為 PSDrive 中的目前位置。
若要取得 PSDrive 中的目前位置,請使用 Get-Location -PSDrive <DriveName>
命令。
PS C:\> Push-Location -Path 'C:\Program Files\PowerShell\' -StackName "Paths"
PS C:\Program Files\PowerShell\> Set-Location -StackName "Paths"
PS C:\Program Files\PowerShell\> Get-Location -Stack
Path
----
C:\
第一個命令會將目前的位置新增至Path堆疊。 第二個命令會讓Path位置堆疊成為目前的位置堆疊。 第三個命令會顯示目前位置堆疊中的位置。
除非命令中指定不同的位置堆疊,否則 *-Location
Cmdlet 會使用目前的位置堆疊。 如需位置堆疊的相關信息,請參閱 附註。
指定位置的路徑。 LiteralPath 參數的值會與類型完全相同使用。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。
類型: | String |
別名: | PSPath |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
會傳回代表位置的 PathInfo 物件。 根據預設,此 Cmdlet 不會產生任何輸出。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
指定新工作位置的路徑。 如果未提供路徑,Set-Location
預設為目前使用者的主目錄。 使用通配符時,Cmdlet 會選擇符合通配符模式的容器(目錄、登錄機碼、證書存儲)。 如果通配符模式符合多個容器,Cmdlet 會傳回錯誤。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | True |
指定這個 Cmdlet 建立目前位置堆疊的現有位置堆疊名稱。 輸入位置堆疊名稱。 若要指出未命名的預設位置堆疊,請輸入 $null
或空字串 (""
)。
使用此參數並不會變更目前的位置。 它只會變更 *-Location
Cmdlet 所使用的堆疊。 除非您使用 StackName 參數來指定不同的堆疊,否則 *-Location
Cmdlet 會作用於目前的堆疊。 如需位置堆疊的詳細資訊,請參閱 Notes。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
在作用中交易中包含 命令。 只有在交易進行中時,此參數才有效。 如需詳細資訊,請參閱 about_Transactions。
類型: | SwitchParameter |
別名: | usetx |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
您可以使用管線將包含路徑但不是常值路徑的字串傳送至此 Cmdlet。
None
根據預設,此 Cmdlet 不會傳回任何輸出。
當您搭配 Path 或 LiteralPath使用 PassThru 參數時,此 Cmdlet 會傳回代表新位置的 PathInfo 物件。
當您搭配 StackName使用 PassThru 參數時,此 Cmdlet 會傳回代表新堆棧內容的 PathInfoStack 物件。
Windows PowerShell 包含下列 Set-Location
別名:
cd
chdir
sl
PowerShell 支援每個進程的多個 Runspace。 每個 runspace 都有自己的 目前目錄。
這與 [System.Environment]::CurrentDirectory
不同。 呼叫 .NET API 或執行原生應用程式時,若未提供明確的目錄路徑,則此行為可能會發生問題。
即使位置 Cmdlet 已設定全進程目前的目錄,您也無法依賴它,因為其他 Runspace 可能會隨時變更它。 您應該使用位置 Cmdlet,使用目前 Runspace 特有的目前工作目錄來執行路徑型作業。
Set-Location
Cmdlet 的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入 Get-PSProvider
。 如需詳細資訊,請參閱 about_Providers。
堆疊是最後一個先出清單,其中只能存取最近新增的專案。 您可以依您使用項目的順序,將專案新增至堆疊,然後擷取這些專案以反向順序使用。 PowerShell 可讓您將提供者位置儲存在位置堆疊中。 PowerShell 會建立未命名的預設位置堆疊。 您可以建立多個具名位置堆疊。 如果您未指定堆疊名稱,PowerShell 會使用目前的位置堆疊。 根據預設,未命名的預設位置是目前的位置堆疊,但您可以使用 Set-Location
Cmdlet 來變更目前的位置堆疊。
若要管理位置堆疊,請使用 *-Location
Cmdlet,如下所示:
若要將位置新增至位置堆疊,請使用
Push-Location
Cmdlet。若要從位置堆疊取得位置,請使用
Pop-Location
Cmdlet。若要顯示目前位置堆疊中的位置,請使用
Get-Location
Cmdlet 的 Stack 參數。 若要在具名位置堆疊中顯示位置,請使用Get-Location
的 StackName 參數。若要建立新的位置堆疊,請使用
Push-Location
的 StackName 參數。 如果您指定不存在的堆疊,Push-Location
會建立堆疊。若要將位置堆疊設為目前的位置堆疊,請使用
Set-Location
的 StackName 參數。
只有目前的位置堆疊是目前的位置堆疊時,才能完全存取未命名的預設位置堆疊。
如果您將具名位置堆疊設為目前的位置堆疊,就無法再使用 Push-Location
或 Pop-Location
Cmdlet 從預設堆疊新增或取得專案,或使用 Get-Location
Cmdlet 來顯示未命名堆疊中的位置。 若要將未命名的堆疊設為目前的堆疊,請使用 Set-Location
Cmdlet 的 StackName 參數,其值為 $null
或空字串 (""
)。