如何使用 PowerShell 设置环境变量

  1. 什么是环境变量
  2. 使用 PowerShell 中的 Env: 设置环境变量
  3. 在 PowerShell 中设置 [System.Environment] .NET 类
  4. 在当前 PowerShell 会话中刷新环境变量
  5. 结论
如何使用 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-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 修改名为 TEST 的现有环境变量的值,该变量位于 Env:\ 命名空间中。通过指定 -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 cmdlet,例如 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