如何使用 PowerShell 設置環境變量

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

使用 Windows PowerShell 設定 Windows 環境變數、讀取環境變數,以及創建新的環境變數是容易的,一旦我們知道正確的命令執行方式。

PowerShell 提供了多種不同的方法來與 Windows 環境變數互動,通過 $env: PSDrive 和 [System.Environment] .NET 類。本文將討論如何使用 PowerShell 設定環境變數並在當前會話中刷新它們。

什麼是環境變數

顧名思義,環境變數存儲有關 Windows 和應用程式環境的信息。

我們可以通過圖形介面(如 Windows 檔案總管)以及純文本編輯器(如 Notepadcmd.exe 和 PowerShell)來訪問環境變數。

使用環境變數幫助我們避免在 PowerShell 腳本或模組中硬編碼檔案路徑、用戶名或電腦名稱等。

使用 PowerShell 中的 Env: 設定環境變數

我們可以使用 PowerShell 中的 New-Item Cmdlet 來創建新的環境變數。但是,首先,要在 Env:\<EnvVarName> 格式中提供環境變數的名稱作為 Value 參數,如下所示。

示例代碼:

New-Item -Path Env:\TEST -Value WIN10-DESKTOP

我們使用 PowerShell Cmdlet New-ItemEnv:\ 命名空間中創建或更新一個名為 TEST 的環境變數。通過指定 -Value WIN10-DESKTOP,我們將值 WIN10-DESKTOP 指派給此變數。

這一操作影響當前的 PowerShell 會話,使得 TEST 環境變數可以在會話中的其他腳本和命令中訪問。

輸出:

powershell 更新環境變數 - 輸出 1

我們可以使用 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 刷新環境變數 - 輸出 2

在 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 刷新環境變數 - 輸出 3

結論

在本文中,我們探討了在 PowerShell 中管理環境變數的各種方法,專注於使用不同技術設置和刷新它們。我們首先演示了如何使用 PowerShell Cmdlets(如 New-ItemSet-Item)創建或修改環境變數,為每一步提供了明確的示例和解釋。

接著,我們深入了解了使用 [System.Environment] .NET 類來操作環境變數。通過 SetEnvironmentVariable() 方法,我們學會了如何設置具有特定範圍的變數,理解每個範圍對變數持久性的影響。

最後,我們涵蓋了在當前 PowerShell 會話中刷新環境變數的重要性,強調了使用 [System.Environment]::GetEnvironmentVariable() 來動態更新變數的使用。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相關文章 - PowerShell Environment Variables