如何使用 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