मैं कैसे En गौरवशाली चर प्राप्त कर सकता हूं और यदि कोई चीज गायब है, तो मूल्य निर्धारित करें?
मैं कैसे En गौरवशाली चर प्राप्त कर सकता हूं और यदि कोई चीज गायब है, तो मूल्य निर्धारित करें?
जवाबों:
System.Environment वर्ग का उपयोग करें ।
विधियों
var value = System.Environment.GetEnvironmentVariable(variable [, Target])
तथा
System.Environment.SetEnvironmentVariable(variable, value [, Target])
आपके लिए काम करेंगे
वैकल्पिक पैरामीटर Target
प्रकार का एक enum है EnvironmentVariableTarget
और इसके बारे में एक हो सकता है: Machine
, Process
, या User
। यदि आप इसे छोड़ देते हैं, तो डिफ़ॉल्ट लक्ष्य वर्तमान प्रक्रिया है।
EnvironmentVariableTarget.Machine
प्रशासक पहुंच की आवश्यकता है?
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);
मेरे लिए एक जादू की तरह काम किया।
जाओ और सेट करो
प्राप्त
string getEnv = Environment.GetEnvironmentVariable("envVar");
सेट
string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
यह एक पर्यावरण चर के लिए काम करेगा जो मशीन सेटिंग है। उपयोगकर्ताओं के लिए, इसके बजाय केवल उपयोगकर्ता को बदलें।
String EnvironmentPath = System.Environment
.GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);
EnvironmentVariableTarget.Machine
इसके बजाय स्थायी उपयोग हो ।
मैं निम्नलिखित का उपयोग करके पर्यावरण चर को अद्यतन करने में सक्षम हो सकता है
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);