मौजूदा जवाब बिल्कुल उपयोगी हैं, लेकिन मुझे एक व्यावहारिक सारांश प्रयास करते हैं:
आमतौर पर, आप चाहते हैं मौजूदा प्रक्रिया के परिभाषा एक वातावरण चर:
CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%")
इस के बराबर (%
Aro के अभाव ध्यान दें und चर नाम):
CreateObject("WScript.Shell").Environment("Process").Item("TEMP")
चेतावनी: ("Process)
हिस्सा छोड़ नहीं है: यदि आप करते हैं, आप चर का प्रणाली गुंजाइश की परिभाषा मिल जाएगा; निचे देखो।
.ExpandEnvironmentStrings
धारणात्मक सरल और अधिक लचीला है: यह एम्बेडेड (%
-enclosed) पर्यावरण के वैरिएबल संदर्भ के साथ मनमाना तार का विस्तार कर सकते हैं; उदा .:
CreateObject("WScript.Shell").ExpandEnvironmentStrings("My name is %USERNAME%")
दुर्लभ अवसरों पर आप एक विशिष्ट गुंजाइश (मौजूदा प्रक्रिया के अलावा अन्य) से पहुँच पर्यावरण के चर परिभाषा की बात हो सकती है।
sScope = "System" ' May be: "Process", "User", "Volatile", "System"
CreateObject("WScript.Shell").Environment(sScope).Item("TEMP")
ध्यान दें: ऊपर कहा गया है, System
गुंजाइश के लिए गुंजाइश तर्क चूक को छोड़ते हुए।
चेतावनी: एक मूल्य के इस तरह विस्तार नहीं करता पहुँचना यह पर्यावरण-चर मान नेस्टेड हो सकता है: वे अन्य वातावरण चर का उल्लेख कर सकते।
उदाहरण में ऊपर, वापसी मान %SystemRoot%\TEMP
, जो %SystemRoot%
करने के लिए अविस्तारित संदर्भ शामिल है।
परिणाम का विस्तार करने के लिए, ऊपर दिखाए गए अनुसार इसे .ExpandEnvironmentStrings()
पर पास करें।
[ऑब्जेक्ट 'CreateObject ("WScript.Network" '] (https://msdn.microsoft.com/en-us/library/s6wt333f (v = vs.84) .aspx द्वारा लौटाया गया ऑब्जेक्ट जेनेरिक प्रदान नहीं करता है पर्यावरण-परिवर्तनीय पहुंच, यह केवल 3 मानों को उन गुणों के रूप में प्रकट करने के लिए होता है जो पर्यावरण चर में प्रतिबिंबित होते हैं: 'कंप्यूटर नाम', 'उपयोगकर्ता डोमेन' और 'उपयोगकर्ता नाम'। कारण यह है कि आपका अंतिम उदाहरण काम नहीं करता है कि 'WshShell। पर्यावरण' 'WshShell.Anvironment (" System ")' के समान है, और '% USERNAME%' को _system_ दायरे में परिभाषित नहीं किया गया है। – mklement0