2008-09-18 13 views
6

वर्तमान में किया जा रहा से एक त्रुटि, WScript संदेश बॉक्स पॉप अप होता है जब वहाँ एक स्क्रिप्ट त्रुटि है। इन स्क्रिप्ट को अन्य प्रक्रियाओं द्वारा बुलाया जाता है, और सर्वर पर चलाए जाते हैं, इसलिए त्रुटि बॉक्स को खारिज करने के लिए कोई भी नहीं है।CScript/WScript रोकें अवरुद्ध

मैं चाहता क्या के लिए त्रुटि संदेश STDOUT करने के लिए फेंक दिया जा करने के लिए, और निष्पादन बुला प्रक्रिया वापस जाने के लिए है। एक एमएसबीबीक्स के रूप में पॉपिंग सिर्फ पूरी चीज लटका है।

विचार?

उत्तर

4

यह वह जगह है आप कैसे स्क्रिप्ट बैच नौकरियों चल जाना चाहिए:

cscript //b scriptname.vbs 
+0

यह भी देखें http://stackoverflow.com/questions/8678441/difference-between-wscript-and-cscript/9062764#9062764 – Ben

0

आप किस भाषा का प्रयोग कर रहे हैं ने कहा नहीं किया है। यदि आप वीबीस्क्रिप्ट का उपयोग कर रहे हैं, तो आप On Error... कथन का उपयोग करके एक त्रुटि हैंडलर लिख सकते हैं। यदि आप जेस्क्रिप्ट का उपयोग कर रहे हैं, तो आप try {} catch (x) {} ब्लॉक का उपयोग कर सकते हैं।

0

ऐसा नहीं करते हैं:

VBScript: त्रुटि को फिर से शुरू पर अगले

अंग्रेज़ी: "। यदि आपको कोई त्रुटि है जब, इसे अनदेखा और बस आगे बढ़ते जाते"

2

WScript उपयोग न करें; सीएसक्रिप्ट का प्रयोग करें। विंडोज कमांड प्रॉम्प्ट पर, सहायता प्रदर्शित करने के लिए निम्न टाइप करें।

cscript //?
मैं निम्नलिखित का सुझाव देता हूं:
cscript //H:CScript
यह आपके डिफ़ॉल्ट स्क्रिप्टिंग दुभाषिया को सीएसक्रिप्ट बना देगा। सीएसक्रिप्ट कंसोल पर संदेश प्रिंट करता है (यानी, stdout) जैसा आप चाहते हैं। (यह संवाद विंडो का उपयोग नहीं करता है।) आप // बी स्विच को भी आजमा सकते हैं, लेकिन मैं यह नहीं बता सकता कि उसे प्रति-स्क्रिप्ट चलाने की आवश्यकता है या नहीं। यदि यह लगातार है, // एच स्विच की तरह एक बार स्विच है, तो यह आपके लिए काम कर सकता है; यदि नहीं, तो आपको इसे शामिल करने के लिए अपने सभी दूरस्थ कार्यक्रमों को संशोधित करने की आवश्यकता हो सकती है। आपके द्वारा प्रदान की गई जानकारी से, मुझे लगता है कि केवल डिफ़ॉल्ट दुभाषिया (// एच) बदलना आप जो चाहते हैं वह करेगा।

स्क्रिप्ट को किसी त्रुटि पर समाप्त होने से रोकने के लिए आपको कुछ प्रकार की त्रुटि हैंडलिंग भी जोड़नी होगी। विजुअल बेसिक स्क्रिप्टिंग संस्करण में, यदि आप केवल त्रुटियों को अनदेखा करना चाहते हैं तो सबसे आसान काम यह है कि आप अपनी स्क्रिप्ट के शीर्ष पर निम्नलिखित जोड़ दें।

On Error Resume Next
अधिक जानकारी के लिए http://msdn.microsoft.com/en-us/library/53f3k80h(VS.85).aspx देखें।

1

MsgBox के बजाय WScript.Echo का प्रयोग करें। और, WSCRIPT के बजाय CSCRIPT का उपयोग करके स्क्रिप्ट चलाएं।

0

मैं तुम्हें एक उप में अपनी स्क्रिप्ट कोड डाल सुझाव है - जैसे DoWork - और इस तरह अपनी स्क्रिप्ट कुछ कोड डाल दें:

On Error Resume Next 

DoWork 

If Err.Number <> 0 Then 

    If "CSCRIPT.EXE" = UCase(Right(WScript.Fullname, 11)) Then 
     WScript.StdErr.Write Err.Number & ": " & Err.Description 
    Else 
     WScript.Echo Err.Number & ": " & Err.Description 
    End If 
    WScript.Quit 1 
End If 

Private Sub DoWork 

    ... your code ... 

End Sub 

इस तरह, जब आप cscript //b का उपयोग कर अपनी स्क्रिप्ट चलाने, और यह विफल रहता है, तो आप को stderr करने के लिए एक त्रुटि संदेश उत्पादन मिलता है और फोन करने वाले एक गैर प्राप्त होगा शून्य त्रुटि।

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