আমি কীভাবে এনভায়রনমেন্ট ভেরিয়েবল পেতে পারি এবং যদি কিছু অনুপস্থিত থাকে তবে মানটি সেট করবো?
আমি কীভাবে এনভায়রনমেন্ট ভেরিয়েবল পেতে পারি এবং যদি কিছু অনুপস্থিত থাকে তবে মানটি সেট করবো?
উত্তর:
সিস্টেম.এনভায়রনমেন্ট ক্লাসটি ব্যবহার করুন ।
পদ্ধতিগুলি
var value = System.Environment.GetEnvironmentVariable(variable [, Target])
এবং
System.Environment.SetEnvironmentVariable(variable, value [, Target])
আপনার জন্য কাজ করবে।
ঐচ্ছিক প্যারামিটার Target
প্রকারের একটি enum হয় EnvironmentVariableTarget
এবং এটি একটি হতে পারে: Machine
, Process
, অথবা User
। যদি আপনি এটি বাদ দেন তবে ডিফল্ট লক্ষ্য হ'ল বর্তমান প্রক্রিয়া।
EnvironmentVariableTarget.Machine
প্রশাসক অ্যাক্সেস করতে?
PATH এনভায়রনমেন্ট ভেরিয়েবলটি পড়তে .NET কনসোল অ্যাপ্লিকেশনটিতে কাজ করার সময় আমি এটির মধ্যে দৌড়ে এসেছি এবং দেখেছি যে System.EnLive.GetEniversityVariable ব্যবহার করে পরিবেশের পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে প্রসারিত হবে।
আমি এটি ঘটতে চাইনি ... তার মানে '% সিস্টেমরूट% \ system32' এর মতো পথের ফোল্ডারগুলি 'সি: \ উইন্ডোজ \ সিস্টেম 32' হিসাবে পুনরায় লেখা হচ্ছে। আন-প্রসারিত পথটি পেতে, আমাকে এটি ব্যবহার করতে হয়েছিল:
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);