हमारे पास हमारे नेटवर्क पथ पर कुछ आदेश (बैच फ़ाइलें/निष्पादन योग्य) हैं जिन्हें हमें उस कमांड विंडो के लिए हमारे 'विकास पर्यावरण' को प्रारंभ करने के लिए कॉल करना है। यह कुछ पर्यावरणीय चर सेट करता है, पथ आदि में सामान जोड़ता है (फिर केवल जो भी काम करने वाले कमांड हम टाइप करते हैं उन्हें & पता चलेगा कि उन प्रारंभिक आदेशों के अंदर क्या होता है)कमांड विंडो प्रक्रिया में कमांड की श्रृंखला कैसे भेजें?
अब मेरी समस्या है, मैं कॉल करना चाहता हूं एक सी # प्रोग्राम का उपयोग करके उन 'काम करने वाले आदेशों' की एक श्रृंखला, और निश्चित रूप से, वे केवल तभी काम करेंगे जब प्रारंभिक सेटअप किया जाता है। मैं उसे कैसे कर सकता हूँ? वर्तमान में, मैं उदाहरण के लिए इस तरह इस कार्यक्रम से खरोंच से एक बैच फ़ाइल बना रहा हूं:
file.Writeline("InitializationStep1.bat")
file.Writeline("InitializeStep2.exe")
file.Writeline("InitializeStep3.exe")
तब वास्तविक आदेशों
file.Writeline("Dowork -arguments -flags -blah -blah")
file.Writeline("DoMoreWork -arguments -flags -blah -blah")
फिर अंत में फ़ाइल लेखक बंद करो, और इस बैच फ़ाइल चलाते हैं।
अब अगर मैं सीधे Process.<strike>Run</strike>Start("cmd.exe","Dowork -arguments");
का उपयोग करके इसे निष्पादित करता हूं तो यह नहीं चलेगा।
मैं इसे क्लीनर तरीके से कैसे प्राप्त कर सकता हूं, ताकि मुझे केवल एक बार प्रारंभिक आदेश चलाएं? (मैं प्रत्येक तीन प्रारंभकर्ताओं के साथ हर बार cmd.exe
चला सकता हूं, लेकिन उन्हें बहुत समय लगता है इसलिए मैं इसे केवल एक बार करना चाहता हूं)
हाय दोस्तों, भ्रम के लिए खेद है, मेरा मतलब प्रक्रिया है। केवल प्रारंभ करें और प्रक्रिया नहीं। रुन। साथ ही, मुझे लगता है कि मैं अपनी समस्या को समझाने में पर्याप्त स्पष्ट नहीं था। मुझे पता है कि Process.Start और ProcessStartInfo का उपयोग कर इस तरह के बुनियादी आदेशों को कैसे निष्पादित करना है। मेरी समस्या यह है कि, एक बार जब मैं इसे निष्पादित करता हूं, तो यह सब खत्म हो जाता है - जबकि मैं उस प्रक्रिया के साथ 'प्रारंभिक' बैच फ़ाइल को कॉल करना चाहता हूं, और फिर उसी प्रक्रिया में वास्तविक कार्य आदेशों को केवल उसी के रूप में सही वातावरण चर और उचित पथ सेट । –
भी, "यह नहीं चलेगा" मेरा मतलब था कि यह नहीं चलेंगे क्योंकि कमांड चलाने के लिए पूर्वापेक्षाएँ केवल प्रारंभकर्ता बैच और exe फ़ाइलों को कॉल करके कमांड प्रॉम्प्ट में सेट की गई हैं। तो अगर मैं सीधे प्रक्रिया के साथ चलाता हूं तो यह आदेश डॉवर्क को भी पहचाना नहीं जाता है। –
क्या यह नियंत्रण प्रवाह है: 1. बैच फ़ाइल बनाएं (तर्क के बिना), 2. किसी अन्य प्रक्रिया में निर्दिष्ट तर्क के साथ बैच फ़ाइल में आदेश निष्पादित करें। यदि मैं गलत हूं, तो सटीक नियंत्रण प्रवाह क्या है? आप टिप्पणियों के ऊपर बहुत सटीक नहीं हैं। –