मैं C # में पर्यावरण चर कैसे प्राप्त और सेट कर सकता हूं?


जवाबों:


257

System.Environment वर्ग का उपयोग करें ।

विधियों

var value = System.Environment.GetEnvironmentVariable(variable [, Target])

तथा

System.Environment.SetEnvironmentVariable(variable, value [, Target])

आपके लिए काम करेंगे

वैकल्पिक पैरामीटर Targetप्रकार का एक enum है EnvironmentVariableTargetऔर इसके बारे में एक हो सकता है: Machine, Process, या User। यदि आप इसे छोड़ देते हैं, तो डिफ़ॉल्ट लक्ष्य वर्तमान प्रक्रिया है।


37
वैकल्पिक तीसरे पैरामीटर पर भी ध्यान दें: System.Environment.SetEnvironmentVariable (चर, मान, EnvironmentVariableTarget ) संभावित मान इस प्रकार हैं: मशीन , प्रक्रिया और उपयोगकर्ता
पाठ वाहिनी

1
क्या EnvironmentVariableTarget.Machineप्रशासक पहुंच की आवश्यकता है?
चेकसम

हाँ यह करता है। इसके बिना इसे चलाने की कोशिश एक स्पष्ट अपवाद होगी।
इरेज़ ए। कोर्न

30

PATH पर्यावरण चर को पढ़ने के लिए .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);

मेरे लिए एक जादू की तरह काम किया।


7
+1 मुझे इस समाधान का उपयोग करना था क्योंकि पैट्रिक डेसजार्डिन द्वारा उत्तर दिए गए दूसरे के लिए मुझे व्यवस्थापक विशेषाधिकारों की आवश्यकता थी। मैं इस समाधान के साथ व्यवस्थापक विशेषाधिकार के बिना पर्यावरण चर के मूल्य को पढ़ने में सक्षम था!
टोनो नाम

@TonoNam पैट्रिक का जवाब मेरी मशीन में बिना व्यवस्थापक विशेषाधिकारों के काम करता है । ध्यान दें कि सिस्टम वातावरण चर सेट करने के लिए व्यवस्थापक विशेषाधिकारों (निश्चित रूप से) की आवश्यकता होती है।
फ्रैंकलिन यू

16

जाओ और सेट करो

प्राप्त

string getEnv = Environment.GetEnvironmentVariable("envVar");

सेट

string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);

14

यह एक पर्यावरण चर के लिए काम करेगा जो मशीन सेटिंग है। उपयोगकर्ताओं के लिए, इसके बजाय केवल उपयोगकर्ता को बदलें।

String EnvironmentPath = System.Environment
                .GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);


0

मैं निम्नलिखित का उपयोग करके पर्यावरण चर को अद्यतन करने में सक्षम हो सकता है

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);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.