2011-12-15 3 views
7

एक कमांड प्रॉम्प्ट में, यह बाहर का प्रयास करें:क्या पावरहेल पार्सर त्रुटियों पर ERRORLEVEL सेट करना भूल जाता है?

powershell aaa

गूंज ERRORLEVEL है% errorlevel%

Powershell असफल हो जायेगी (एक त्रुटि के साथ)। आप "त्रुटिLevel भी देखेंगे"। ऐसा इसलिए है क्योंकि यह एक स्क्रिप्ट के रूप में aaa चलाता है, जो एक अनचाहे त्रुटि बनाता है, जो त्रुटि-रेखा को सेट करता है।

हालांकि, अब इस प्रयास करें:

powershell '

गूंज ERRORLEVEL है% errorlevel%

Powershell असफल हो जायेगी (एक त्रुटि के साथ)। इस बार, आपको "त्रुटिLevel 0" भी देखेंगे।

मुझे एहसास है कि यह एक अलग समस्या है। पावरहेल यह भी कहेंगे कि यह पार्सररर है, और ऐसा इसलिए है क्योंकि मैंने कमांड लाइन तर्कों को खराब कर दिया है। फिर भी, जो ठंडा नहीं है

मुझे अस्पष्ट नहीं है कि यह इस तरह से क्यों व्यवहार करता है। मुझे लगता है कि यह एक निरीक्षण था। वहां अन्य कार्यक्रम विफलताओं पर त्रुटि को हल करने की उपेक्षा करते हैं, लेकिन इस मामले में ऐसा लगता है जैसे वे आधा रास्ते चले गए। यह भी इसे 0 पर सेट करने के रूप में स्थापित करने के विरोध में है।

+1

एक मामूली सुधार: कंसोल एप्लिकेशन के लिए त्रुटि स्तर निर्धारित करने का कोई तरीका नहीं है। यह आंतरिक आदेशों के लिए ही संभव है। –

+0

विंडोज स्क्रिप्ट होस्ट (सीएसक्रिप्ट) एक समान समस्या है। संभावित रूप से एमएस पावरहेल और डब्ल्यूएसएच को कमांड शैल के ग्राहकों के बजाय विकल्प के रूप में देखते हैं। –

+1

सफलतापूर्वक एक विशिष्ट गैर-शून्य मान वापस करने के लिए आपके पावरहेल/डब्ल्यूएसएच स्क्रिप्ट के लिए एक वर्कअराउंड है; -1 एक अच्छा विकल्प हो सकता है। –

उत्तर

1

हम्म मुझे लगता है कि मैं सहमत हूं कि एक पार्स त्रुटि को रिटर्न कोड को शून्य पर सेट करना चाहिए। मैं पावरहेल कनेक्ट साइट पर इसे भरने का सुझाव देता हूं। http://connect.microsoft.com/PowerShell

+0

मुझे लगता है कि हमने इस पर जितना संभव हो सके समुदाय मस्तिष्क को चुना है। यदि कोई अच्छा कारण था तो मुझे "0" रिटर्न कोड से निपटने में कोई दिक्कत नहीं होगी, लेकिन मुझे लगता है कि इस स्थिति के लिए व्यवहार जानबूझकर परिभाषित नहीं किया गया था। –

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