C#에서 환경 변수를 얻고 설정하려면 어떻게해야합니까?
-
06-07-2019 - |
문제
환경 변수를 어떻게 얻을 수 있고 무언가 누락 된 경우 값을 설정합니까?
해결책
사용 시스템. 환경 수업.
방법
var value = System.Environment.GetEnvironmentVariable(variable [, Target])
그리고
System.Environment.SetEnvironmentVariable(variable, value [, Target])
당신을 위해 일을 할 것입니다.
선택적 매개 변수 Target
유형의 열거입니다 EnvironmentVariableTarget
그리고 그것은 다음 중 하나 일 수 있습니다. Machine
, Process
, 또는 User
. 당신이 그것을 생략하면, 기본 대상은 현재 프로세스.
다른 팁
.NET 콘솔 앱에서 경로 환경 변수를 읽는 동안이 작업을 수행하고 System.environment.getenVironmentVariable을 사용하면 환경 변수가 자동으로 확장 될 것임을 발견했습니다.
나는 그런 일이 일어나기를 원하지 않았다 ... 즉 '%systemroot% system32'와 같은 경로의 폴더가 'c : windows system32'로 다시 작성되었음을 의미합니다. 확장되지 않은 경로를 얻으려면 다음을 사용해야했습니다.
string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string existingPathFolderVariable = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("PATH", "", RegistryValueOptions.DoNotExpandEnvironmentNames);
나를위한 매력처럼 일했습니다.
이것은 기계 설정 인 환경 변수에 대해 작동합니다. 사용자의 경우 대신 사용자로 변경하십시오.
String EnvironmentPath = System.Environment
.GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);
얻고 설정하십시오
얻다
string getEnv = Environment.GetEnvironmentVariable("envVar");
세트
string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);
다음을 사용하여 환경 변수를 업데이트 할 수 있습니다.
string EnvPath = System.Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine) ?? string.Empty;
if (!string.IsNullOrEmpty(EnvPath) && !EnvPath .EndsWith(";"))
EnvPath = EnvPath + ';';
EnvPath = EnvPath + @"C:\Test";
Environment.SetEnvironmentVariable("PATH", EnvPath , EnvironmentVariableTarget.Machine);
제휴하지 않습니다 StackOverflow