【问题标题】:How do I update Windows path WITHOUT losing the original embedded environment variables如何在不丢失原始嵌入式环境变量的情况下更新 Windows 路径
【发布时间】:2011-06-01 00:03:23
【问题描述】:

Windows 2008R2 Powershell v2.0

原始路径(从高级系统设置/环境变量中看到)是:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

我从 Powershell 运行:

[Environment]::SetEnvironmentVariable("PATH", "$($env:path;C:\Temp", "Machine")

[Environment]::SetEnvironmentVariable("PATH", "$($([Environment]::GetEnvironmentVariable('PATH', 'MACHINE')));C:\Temp", "Machine")

现在我的路径(从高级系统设置/环境变量中看到)是:

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Temp

有没有办法检索现有路径而不对其进行评估,以便我可以保留嵌入在原始路径中的现有环境变量?

【问题讨论】:

    标签: powershell environment-variables


    【解决方案1】:

    有点中世纪,但似乎可行:

    (((reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment") |
      select-string "\s+path\s+REG_EXPAND_SZ").line -split "    ")[3]
    

    【讨论】:

      【解决方案2】:

      认为问题在于 PS 是如何获取环境变量的;

      此 S/O 帖子可能包含您的答案(希望如此!):

      PowerShell: Get 'tmp' environment variable raw value

      【讨论】:

      • 这与 mjolinor 提供的有关在注册表中何处找到 Path 的信息一起导致了更好的答案(至少在它“看起来”强大的方面)。谢谢你的领导,Russ C。我最终使用了(get-item "hklm:\System\CurrentControlSet\Control\Session Manager\Environment").GetValue("Path", $null, 'DoNotExpandEnvironmentNames')
      【解决方案3】:

      试试这个(转换为 PS 后):

      string originalPath = Environment.GetEnvironmentVariable("PATH");
      string path = originalPath + ";" + "NEW_PATH_BIT";
      Environment.SetEnvironmentVariable("PATH", path);
      

      【讨论】:

      • 我想我已经用[Environment]::SetEnvironmentVariable("PATH", "$($([Environment]::GetEnvironmentVariable('PATH', 'MACHINE')));C:\Temp", "Machine")尝试过这种方法
      【解决方案4】:

      我不确定是否有 - 我试过了:

      PS C:\> $string1 = " World"
      PS C:\> $string2 = "Hello$string1"
      PS C:\> $string2
      Hello World
      

      看看它是否与环境变量或其他东西有关。

      我猜这是在命令行上编译的方式。在评估整个表达式之前评估所有变量。所以最终结果并不知道其中的工作。

      【讨论】:

      • 是的,应该意识到这没有帮助!
      猜你喜欢
      • 2018-11-08
      • 1970-01-01
      • 2019-08-06
      • 2013-04-29
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 2016-09-19
      相关资源
      最近更新 更多