2010-04-25 19 views
11

से त्रुटियां प्राप्त करें मैं कोशिश कर रहा हूं, कमांड प्रोमेट प्रक्रिया तर्क के साथ। अब मैं मौजूद होने पर त्रुटियों के बारे में जानकारी प्राप्त करना चाहता हूं।प्रक्रिया। स्टार्ट() कमांड प्रॉम्प्ट विंडो

someProcess = System.Diagnostics.Process.Start(cmd, someArgs); 

सादर, loviji

+0

आपका क्या मतलब है? – SLaks

+1

पूरी तरह से अस्पष्ट सवाल। किस तरह की त्रुटि? – Nayan

+1

यह बिल्कुल अस्पष्ट सवाल नहीं है। सुबोध। – cgalvao1993

उत्तर

12

अन्य उत्तरों सही हैं। यहां कुछ कोड है जिसका आप उपयोग कर सकते हैं:

ProcessStartInfo startInfo = new ProcessStartInfo(cmd, args); 
startInfo.UseShellExecute = false; 
startInfo.RedirectStandardError = true; 
Process someProcess = Process.Start(startInfo); 
string errors = someProcess.StandardError.ReadToEnd(); 

ध्यान दें कि यदि फ़ाइल नहीं मिली है तो आपको मानक त्रुटि पर कोई त्रुटि नहीं मिलेगी। आपको इसके बजाय अपवाद मिलेगा।

+0

ध्यान दें कि ReadToEnd को कॉल कभी समाप्त नहीं हो सकता है। डेडलॉक से बचने के लिए इसके बजाय एसिंक्रोनस रीडिंग विधियों का उपयोग करें। मेरा उत्तर यहां देखें: http://stackoverflow.com/questions/139593/processstartinfo-hanging-on-waitforexit-why/7608823#7608823 –

+0

मैं आपके उत्तर का पालन करता हूं। और त्रुटियों में यह त्रुटि मिली (स्ट्रिंग var।) 'casperjs' को आंतरिक या बाहरी कमांड, \ r \ n ऑपरेट करने योग्य प्रोग्राम या बैच फ़ाइल के रूप में पहचाना नहीं गया है। \ r \ n Plz मौजूद होने पर कोई समाधान दें –

2

Process.StandardError Property:

आवेदन की त्रुटि उत्पादन को पढ़ने के लिए प्रयोग किया जाता है एक धारा हो जाता है।

यह वही करना चाहिए जो आप चाहते हैं।

नोट

StandardError का उपयोग करने के लिए आपको ProcessStartInfo.UseShellExecute गलत पर सेट करना होगा, और आप सच करने के लिए ProcessStartInfo.RedirectStandardError सेट करना होगा। अन्यथा, मानक एरर स्ट्रीम से पढ़ने से अपवाद फेंकता है।

संबंधित मुद्दे