尝试检索环境变量返回null

时间:2011-10-19 11:57:43

标签: c# environment-variables

我已使用以下命令为用户设置了一个变量。

c:\>set something="C:\programfiles\win\something"

当我尝试使用System.Environment.GetVariable("something")获取变量时,我得到的值为null。

请问有人可以解释这个问题吗?

2 个答案:

答案 0 :(得分:1)

set命令仅在控制台范围内设置变量。您可以在系统属性中设置此变量,而不是这样做。

答案 1 :(得分:1)

如果使用set命令设置环境变量,则该变量实际上仅在当前控制台中设置。因此,如果您有应用程序打印出名为something的变量var.exe,它可以正常工作:

C:\>var.exe


C:\>set something=x

C:\>var.exe
x

但是如果你从另一个控制台(或没有控制台)运行相同的应用程序,则不会设置该变量。

您似乎无法使用set命令全局设置环境变量。但您可以使用Environment.SetEnvironmentVariable()(通过指定target参数)从.Net应用程序执行此操作,也可以在“环境变量”窗口中从Windows手动执行此操作。