-1

我正在使用以下命令为 ac# Console 应用程序中的环境变量设置一个值。

 System.Environment.SetEnvironmentVariable(envvar, result,EnvironmentVariableTarget.Process);

在命令窗口中运行应用程序后,当我尝试回显该变量时,我看不到该值。我必须在批处理文件中使用此应用程序。我想要 SET 命令之类的功能。请帮忙..

编辑: 我尝试使用 System.Environment.SetEnvironmentVariable(envvar,result,EnvironmentVariableTarget.user) 并传播我在 Env VARr 中尝试了这个 Propagating Change 的更改。但我不能在同一个命令窗口中回显变量。

让我重新表述一下这个问题:我想在 c# 中为 Env Var 设置一个值。我必须能够在同一个命令窗口中使用该变量(即我不应该打开一个新的 cmd 窗口来查看更改)。我们使用 SET 命令,我们可以立即使用该变量 .. rt ?我想要这样的功能。请帮忙

4

2 回答 2

2

当您使用 EnvironmentVariableTarget.Process 时,变量集将仅在当前进程中可见,如您在此示例中所见:

System.Environment.SetEnvironmentVariable("myVar", "myValue", EnvironmentVariableTarget.Process);
string s = System.Environment.GetEnvironmentVariable("myVar",EnvironmentVariableTarget.Process);

myVar 上方将显示 s = "myValue" 但在命令窗口中不可见。

如果要设置在命令窗口中可见的值,则需要使用 EnvironmentVariableTarget.User:

System.Environment.SetEnvironmentVariable("myVar", "myValue", EnvironmentVariableTarget.User);

这样设置 myVar=myValue 将被存储,然后您可以在命令窗口上看到。

详细示例位于此处

于 2012-06-09T04:06:43.250 回答
1

为了在当前批处理中查看 env。您必须在程序中将其作为字符串输出并解析它并在批处理文件中调用 set。

或者您可以尝试 EnvironmentVariableTarget.User。使用此选项设置时,环境将在所有新进程中可见。

于 2012-06-09T04:06:38.857 回答