यह एक छोटा लगता है लेकिन उत्तर ने मुझे कुछ दिनों के लिए हटा दिया है।कॉलिंग प्रक्रिया के पर्यावरण चर बदलना
मेरे पास एक विंडोज बैच फ़ाइल है, जो एक सी # प्रोग्राम को एक अतिरिक्त सत्यापन करने के लिए कहते हैं जो बैच फ़ाइल में नहीं किया जा सकता है। सत्यापन पूर्ण होने के बाद मुझे कॉलिंग खोल पर एक स्थिति और एक स्ट्रिंग वापस करने की आवश्यकता है।
अब वापसी मूल्य छोटा है और मेरा सी # कंसोल ऐप बस एक वापसी मूल्य सेट करता है (अगर आप चाहते हैं तो निकास कोड)। और मैंने सोचा कि स्ट्रिंग भी केक का टुकड़ा होगा। - कि बहुत सी # प्रक्रिया है कि चर बनाया है
Environment.SetEnvironmentVariable("ERR", "Some text");
इस कॉल करना चाहिए (और करता है) मौजूदा प्रक्रिया भीतर एक खोल चर को परिभाषित: मैं एक नया खोल चर का उपयोग कर परिभाषित करने का प्रयास। जैसे ही सी # ऐप समाप्त हो जाता है और सी # ऐप बनाया गया खोल वैरिएबल के बारे में कुछ भी नहीं जानता है। तो ... किसी विशेष उपयोग के साथ एक कॉल ... बिलकुल नहीं ... जब तक मैंने सी 3 ऐप से बाल प्रक्रिया नहीं बनाई है, तो शायद यह मेरे चर का वारिस करेगा।
पर्यावरणवृत्त लक्ष्य। माचिन और पर्यावरण VariableTarget.Eser लक्ष्य SetEnvironmentVariable कॉल के लिए लक्ष्य समस्या को हल नहीं करते हैं, क्योंकि केवल एक नव निर्मित प्रक्रिया रजिस्ट्री से इन नए मानों को प्राप्त करेगी।
तो केवल काम कर समाधान मैं के बारे में सोच सकता है: वापसी मान में
- लिखने
पहले दो थोड़ा बदसूरत हैं और आखिरी में इसकी सीमाएं और समस्याएं हैं।
कोई अन्य विचार (मूल प्रक्रिया में एक शैल चर सेट करने के लिए कैसे)? हो सकता है कि इस तरह के खोल चर संशोधनों
धन्यवाद आपके समय के लिए एक सुरक्षा चिंता का विषय है (लगता पथ) कर रहे हैं ...।
वास्तव में ऐसा है। कंसोल ऐप का परिणाम आमतौर पर रिटर्न कोड के माध्यम से वापस किया जाता है। स्पष्ट रूप से 'Environment.Exit()' ढांचे पर थोड़ा मोटा है ... इसलिए एक साधारण 'वापसी x' पसंदीदा विधि है। हालांकि, मैं सोच रहा था कि क्या कोई तरीका है जहां मैं माता-पिता खोल वातावरण में ** एक और मूल्य ** धक्का दे सकता हूं। उदाहरण के लिए त्रुटि कोड 123 के स्ट्रिंग के रूप में स्पष्टीकरण ... मैं अभी stdout का उपयोग कर रहा हूं ... इसे एक फ़ाइल में रीडायरेक्ट करें, इसे वापस खोल var पर पढ़ें, फ़ाइल को हटाएं ... थोड़ा सा गंदे लेकिन यह काम करता है। – JamesH