如何使用 PowerShell 设置环境变量
- 什么是环境变量
-
使用 PowerShell 中的
Env:
设置环境变量 -
在 PowerShell 中设置
[System.Environment]
.NET 类 - 在当前 PowerShell 会话中刷新环境变量
- 结论

使用 Windows PowerShell 设置 Windows 环境变量、读取环境变量以及创建新的环境变量是简单的,只要我们知道正确的命令执行方式。
PowerShell 提供了多种不同的方法通过 $env:
PSDrive 和 [System.Environment]
.NET 类与 Windows 环境变量进行交互。本文将讨论使用 PowerShell 设置环境变量和在当前会话中刷新它们。
什么是环境变量
顾名思义,环境变量存储有关 Windows 和应用程序环境的信息。
我们可以通过图形界面访问环境变量,比如 Windows 资源管理器和文本编辑器,如 记事本
、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
修改名为 TEST
的现有环境变量的值,该变量位于 Env:\
命名空间中。通过指定 -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 cmdlet,例如 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