【发布时间】:2012-06-09 03:43:33
【问题描述】:
我正在使用以下命令在 c# 控制台应用程序中为环境变量设置一个值。
System.Environment.SetEnvironmentVariable(envvar, result,EnvironmentVariableTarget.Process);
在命令窗口中运行应用程序后,当我尝试回显该变量时,我看不到该值。 我必须在批处理文件中使用此应用程序。 我想要 SET 命令之类的功能。请帮忙..
编辑: 我尝试使用 System.Environment.SetEnvironmentVariable(envvar,result,EnvironmentVariableTarget.user) 并传播我尝试过的更改Propagating Change in Env VAr。但我不能在同一个命令窗口中回显变量。
让我重新表述一下这个问题: 我想在 c# 中为 Env Var 设置一个值。我必须能够在同一个命令窗口中使用该变量(即我不应该打开一个新的 cmd 窗口来查看更改)。我们使用 SET 命令,我们可以立即使用该变量 .. rt ?我想要这样的功能。请帮忙
【问题讨论】:
-
使用该方法创建的环境变量在当前进程中可见。
-
我尝试使用 EnvironmentVariableTarget.User。在当前用户下正在创建一个新的环境变量,但新创建的变量对批处理文件不可见。如果我关闭并打开一个新的命令窗口,那么我可以使用该变量。我看到了一些解决方案来传播环境变量中的更改,但我不确定如何将它们包含在我的程序中。我的程序名称是 test.exe。我将在批处理文件中以下列方式使用它。 “test var := asdf”。预期的输出是“var”应该被分配“asdf”,我应该能够通过在 bacth 文件的其余部分中使用 %var% 来获得该值。
标签: c# command-line