如何使用 PowerShell 設置環境變量
- 什麼是環境變數
-
使用 PowerShell 中的
Env:
設定環境變數 -
在 PowerShell 中設定
[System.Environment]
.NET 類 - 在當前 PowerShell 會話中刷新環境變數
- 結論

使用 Windows PowerShell 設定 Windows 環境變數、讀取環境變數,以及創建新的環境變數是容易的,一旦我們知道正確的命令執行方式。
PowerShell 提供了多種不同的方法來與 Windows 環境變數互動,通過 $env:
PSDrive 和 [System.Environment]
.NET 類。本文將討論如何使用 PowerShell 設定環境變數並在當前會話中刷新它們。
什麼是環境變數
顧名思義,環境變數存儲有關 Windows 和應用程式環境的信息。
我們可以通過圖形介面(如 Windows 檔案總管)以及純文本編輯器(如 Notepad
、cmd.exe
和 PowerShell)來訪問環境變數。
使用環境變數幫助我們避免在 PowerShell 腳本或模組中硬編碼檔案路徑、用戶名或電腦名稱等。
使用 PowerShell 中的 Env:
設定環境變數
我們可以使用 PowerShell 中的 New-Item
Cmdlet 來創建新的環境變數。但是,首先,要在 Env:\<EnvVarName>
格式中提供環境變數的名稱作為 Value
參數,如下所示。
示例代碼:
New-Item -Path Env:\TEST -Value WIN10-DESKTOP
我們使用 PowerShell Cmdlet New-Item
在 Env:\
命名空間中創建或更新一個名為 TEST
的環境變數。通過指定 -Value WIN10-DESKTOP
,我們將值 WIN10-DESKTOP
指派給此變數。
這一操作影響當前的 PowerShell 會話,使得 TEST
環境變數可以在會話中的其他腳本和命令中訪問。
輸出:
我們可以使用 Set-Item
Cmdlet 設定一個環境變數,或如果該變數尚不存在則創建一個新的。例如,下面使用 Set-Item
Cmdlet。
我們可以創建或修改一個環境變數。
示例代碼:
Set-Item -Path Env:TEST -Value "TestValue"
我們使用 PowerShell Cmdlet Set-Item
來修改在 Env:\
命名空間中已存在的環境變數 TEST
的值。通過指定 -Value "TestValue"
,我們將字符串 "TestValue"
指派給 TEST
環境變數。
這一操作直接影響當前 PowerShell 會話,更新 TEST
的值以供其他腳本和命令在會話中使用。
輸出:
在 PowerShell 中設定 [System.Environment]
.NET 類
[System.Environment]
將使用幾種不同的 .NET 靜態類方法。我們不需要了解靜態方式是什麼。
我們只需了解如何使用即將學習的任何技術,並且需要首先引用該類([System.Environment]
),然後跟著兩個冒號(::
),接著是方法。
要使用所述的 .NET 類設定環境變數,使用 SetEnvironmentVariable()
函數來為給定範圍設置現有環境變數的值,或者如果它尚不存在則創建一個新的環境變數。
在進程範圍內設定變數時,我們會發現進程範圍是易變的,並存在於當前會話中,而用戶和計算機範圍的變更是永久的。
示例代碼:
[System.Environment]::SetEnvironmentVariable('TestVariable', 'TestValue', 'User')
我們使用 .NET 方法 [System.Environment]::SetEnvironmentVariable()
來設置名為 TestVariable
的環境變數,其值為 'TestValue'
,並在用戶特定的環境中。通過指定 'User'
作為第三個參數,我們確保該變數設置在用戶的環境上下文中。
這一操作影響當前用戶的環境設置,允許其他腳本和應用程式訪問 TestVariable
及其指派的值。
在當前 PowerShell 會話中刷新環境變數
要在 PowerShell 會話中使用我們的新環境變數集,通過 .NET 類獲取用戶配置文件和計算機的環境變數,並將其分配給 PowerShell 環境變數。
由於環境變數也被認為是 PowerShell 變數,我們可以更直接地將值直接分配給它們。
示例代碼:
$env:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
我們通過拼接使用 [System.Environment]::GetEnvironmentVariable()
獲取的系統和用戶 Path
環境變數的值來更新 $env:PATH
環境變數。我們首先使用 "Machine"
參數獲取系統 Path
變數,然後追加使用 "User"
參數獲取的用戶 Path
變數。
通過使用分號作為分隔符來結合這些值,我們確保在更新的 $env:PATH
中包含兩組路徑。
輸出:
結論
在本文中,我們探討了在 PowerShell 中管理環境變數的各種方法,專注於使用不同技術設置和刷新它們。我們首先演示了如何使用 PowerShell Cmdlets(如 New-Item
和 Set-Item
)創建或修改環境變數,為每一步提供了明確的示例和解釋。
接著,我們深入了解了使用 [System.Environment]
.NET 類來操作環境變數。通過 SetEnvironmentVariable()
方法,我們學會了如何設置具有特定範圍的變數,理解每個範圍對變數持久性的影響。
最後,我們涵蓋了在當前 PowerShell 會話中刷新環境變數的重要性,強調了使用 [System.Environment]::GetEnvironmentVariable()
來動態更新變數的使用。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn