如何使用 PowerShell 获取环境变量值?

powershellmicrosoft technologiessoftware & coding更新于 2026/2/11 3:07:17

环境变量是操作系统的重要组成部分。它们存储各种信息,例如系统文件和文件夹的路径、系统运行的处理器数量、当前用户详细信息等等。进程和程序利用这些环境变量来检索其执行所需的数据。

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

相关文章