我已使用以下命令为用户设置了一个变量。
c:\>set something="C:\programfiles\win\something"
当我尝试使用System.Environment.GetVariable("something")
获取变量时,我得到的值为null。
请问有人可以解释这个问题吗?
答案 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手动执行此操作。