2011-10-19 4 views
1

아래 명령을 사용하여 사용자에게 변수를 설정했습니다. 내가 System.Environment.GetVariable("something")를 사용하여 변수를 얻을 때환경 변수를 검색하려고하면 null이 반환됩니다.

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

, 나는 널 (null)로 값을 얻는다.

누구든지이 문제를 설명 할 수 있습니까?

+1

동일한 콘솔에서 프로그램을 실행하고 있습니까? 환경 변수는 콘솔 세션간에 전파되지 않습니다 ('programfiles'로 인해 Windows라고 가정). –

답변

1

set 명령은 콘솔 범위에서만 변수를 설정합니다. 이 작업을 수행하는 대신 시스템 속성에서이 변수를 설정할 수 있습니다.

1

set 명령을 사용하여 환경 변수를 설정하면 해당 변수는 실제로는 현재 콘솔에서만 설정됩니다.

C:\>var.exe 


C:\>set something=x 

C:\>var.exe 
x 

을하지만 당신은 다른 콘솔 (또는 없음)에서 같은 응용 프로그램을 실행할 경우 변수가 설정되지 않습니다 : 그래서 당신은 응용 프로그램이있는 경우, 그것을 잘 작동 변수 something라는 var.exe를 출력하는.

set 명령을 사용하여 환경 변수를 전역으로 설정할 수 없습니다. 하지만 Environment.SetEnvironmentVariable() (target 매개 변수 지정)을 사용하거나 Windows의 "환경 변수"창에서 .Net 응용 프로그램을 사용하여 수동으로 수행 할 수 있습니다.

관련 문제