如何使用 PowerShell 獲取環境變數的值?


環境變數是作業系統的重要組成部分。它們儲存各種資訊,例如系統檔案和資料夾的路徑、系統執行的處理器數量、當前使用者詳細資訊等等。程序和程式利用這些環境變數來檢索其執行所需的資料。

PowerShell 中的環境變數儲存為 PS 驅動器 (Env: )。要檢索作業系統中儲存的所有環境變數,可以使用以下命令。

Get-ChildItem -Path Env:
Name                        Value
----                        -----
ALLUSERSPROFILE             C:\ProgramData
APPDATA                     C:\Users\delta\AppData\Roaming
CommonProgramFiles          C:\Program Files\Common Files
CommonProgramFiles(x86)     C:\Program Files (x86)\Common Files
CommonProgramW6432          C:\Program Files\Common Files
COMPUTERNAME                TEST1-WIN2K12
ComSpec                     C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK            NO
HOMEDRIVE                   C:
HOMEPATH                    \Users\delta
LOCALAPPDATA                C:\Users\delta\AppData\Local
LOGONSERVER                 \ADDC
NUMBER_OF_PROCESSORS        1
OS                          Windows_NT
Path                        C:\Windows\system32;C:\Windows;C:\Windows\System32
\Wbem
PATHEXT                    .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.
MSC;.
PROCESSOR_ARCHITECTURE     AMD64
PROCESSOR_IDENTIFIER Intel64 Family 6 Model 126 Stepping 5, GenuineInte

您也可以使用 **dir env:** 命令來檢索所有環境變數及其值。

要檢索特定的環境變數,請在 **env:** 後提供變數名稱。

PS C:\Windows\system32> Get-ChildItem -Path Env:\SystemDrive
Name          Value
----          -----
SystemDrive   C:

如果環境變數顯示多個值,則可以使用 Split 操作來分隔值。例如,

$env:PSModulePath -split ';'

輸出

C:\Users\delta\Documents\WindowsPowerShell\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\Windows\system32\WindowsPowerShell\v1.0\Modules

您還可以使用 [System.Environment] 類的 .NET 方法來檢索特定或所有環境變數。要檢索所有環境變數,請使用 GetEnvironmentVariables() 類。

例如,

PS C:\Windows\system32> [System.Environment]::GetEnvironmentVariables()
Name Value
---- -----
COMPUTERNAME TEST1-WIN2K12
USERPROFILE                    C:\Users\delta
HOMEPATH                       \Users\delta
LOCALAPPDATA                   C:\Users\delta\AppData\Local
PSModulePath                   C:\Users\delta\Documents\WindowsPowerShell\Modules
PROCESSOR_ARCHITECTURE         AMD64
Path                           C:\Windows\system32;C:\Windows;C:\Windows\System32
\Wbem
CommonProgramFiles(x86)        C:\Program Files (x86)\Common Files
ProgramFiles(x86)              C:\Program Files (x86)
PROCESSOR_LEVEL                6
LOGONSERVER                   \ADDC
PATHEXT                       .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.
MSC;.CPL

要使用 .Net 方法獲取特定的環境變數,請使用 GetEnvironmentVariable() 方法。

PS C:\Windows\system32> [System.Environment]::GetEnvironmentVariable('appdata')
C:\Users\delta\AppData\Roaming

請參閱以下連結以獲取所有環境系統類支援的屬性和方法。

https://docs.microsoft.com/en-us/dotnet/api/system.environment?view=netcore-3.1

如果您檢視上面的連結,**GetEnvironmentVariable** 方法支援多個引數。

GetEnvironmentVariable(String, EnvironmentVariableTarget)

在下面的示例中,我們可以將環境變數作為字串傳遞,並將 **Machine** 作為 **EnvironmentVariableTarget** 傳遞。

[System.Environment]::GetEnvironmentVariable('PSModulePath', 'Machine')

輸出

C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\
v1.0\Modules

更新於: 2023年10月31日

79K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.