【发布时间】:2011-10-30 14:43:42
【问题描述】:
我想用 C# 程序扩展当前的 PATH 变量。这里我有几个问题:
使用
GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine)替换占位符(即'%SystemRoot%\system32'替换为当前路径'C:\Windows\system32')。更新PATH变量,我不想用路径替换占位符。在
SetEnvironmentVariable之后,无法再从命令框中打开任何程序(即命令框中的 calc.exe 不起作用)。我使用以下代码:
String oldPath = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("PATH", oldPath + ";%MYDIR%", EnvironmentVariableTarget.Machine);
在使用 Windows 编辑和更改 PATH 变量后,一切都会再次运行。 (我的东西需要改变,否则不会被覆盖)
【问题讨论】:
-
为什么不为 PATH 使用占位符?
SetEnvironmentVariable("PATH", "%PATH%;%MYDIR%", EnvironmentVariableTarget.Machine); -
那么PATH变量是:'%PATH%;%MYDIR%'
-
啊,那么对不起。我认为这可能会像在命令行中使用
SET PATH=%PATH%那样工作。除了用占位符替换字符串之外,我不确定该建议什么。 -
使用像
SET PATH=%PATH%;%MYDIR%这样的命令行对我也不起作用...
标签: c# .net windows environment-variables