scripting - How to continue powershell script after executable crash and block -


मेरे पास यह सरल स्क्रिप्ट है:

  $ files = dir। \ Configs | ? {! $ _। PSIsContainer} foreach ($ फाइलों में $ फ़ाइल) {प्रयास करें। {MyApp.exe- त्रुटि रोकें $ फ़ाइल} पकड़ {लिखें- होस्ट "!!!!!!!!!!!! त्रुटि !! !!!!!!!!!!!! " जारी रखें}}  

समस्या यह है कि जब

 । MyApp.exe -ErrorAction $ $ रोकें फ़ाइल  

दुर्घटना, अनुप्रयोग दुर्घटना के बारे में खिड़कियां संदेश बॉक्स प्रकट होता है और मेरी स्क्रिप्ट ब्लॉक, पकड़ हिट नहीं है और जारी रखने का एकमात्र तरीका संदेश बॉक्स में Storno बटन पर क्लिक करें।

तो अवरुद्ध कैसे रोकें?

कई नोट्स यहां लागू होते हैं:

  • यह संवाद ऑपरेटिंग सिस्टम द्वारा प्रबंधित किया जाता है, इसलिए PowerShell के बारे में कुछ भी नहीं है PowerShell इसके बारे में कुछ भी नहीं कर सकते आप एक विंडो और 'क्लिक' बटन ढूंढने के लिए कुछ स्वचालन का उपयोग कर सकते हैं, लेकिन यह वास्तव में अजीब है।
  • पैरामीटर जैसे -ErrorAction लागू करने पर भी कोई मूल्य नहीं है। यह फ़ंक्शन / सीएमडीलेट्स (कुछ और?) पर ही लागू होता है।
  • 0 (सफलता) या कुछ और (असफलता) वापस करने के लिए आवेदन किए गए हैं, वे अपवाद नहीं फेंकते हैं आपके मामले में आप $ lastexitcode का उपयोग कर सकते हैं जिसमें एप्लिकेशन का निकास कोड होता है।

ध्यान दें, ठीक से कोडित एप्लिकेशन को उसके निकास कोड को वापस करना चाहिए और हो सकता है कुछ कंसोल को लिखें अगर यह संदेश बॉक्स के साथ बुरी तरह विफल हो जाता है, तो कोई बहाना नहीं है मुख्य फ़ंक्शन में कम से कम एक बड़ा प्रयास / कैच ब्लॉक का उपयोग किया जाना चाहिए।


Comments