में जावा प्रोग्राम की निकास स्थिति कैसे प्राप्त करें लिनक्स में $?
के अनुरूप, क्या विंडोज बैच फ़ाइल (.bat
) में किसी प्रोग्राम की निकास स्थिति प्राप्त करने का कोई तरीका है?
उदाहरण के लिए कहें कि सफल निष्पादन पर प्रोग्राम System.exit(0)
है, और System.exit(1)
विफलता पर, मैं इन निकास मानों को .bat
फ़ाइल में कैसे फंस सकता हूं?विंडोज बैच फ़ाइल
उत्तर
%ERRORLEVEL% का उपयोग करें। क्या आपको प्यार नहीं है कि बैच फाइलें स्पष्ट और संक्षिप्त कैसे हैं? :)
कुछ की तरह:
java Foo
set exitcode=%ERRORLEVEL%
echo %exitcode%
यह इस बैच फ़ाइल का पूर्ण अगली पंक्ति बनाने के लिए महत्वपूर्ण है, त्रुटि स्तर ओवरराइट किया जा रहा :)
ध्यान दें कि से बचने के लिए अगर आप
का उपयोगIF ERRORLEVEL number
बैच फ़ाइलों के "सुविधा", इसका मतलब है "यदि त्रुटि स्तर से अधिक या number
के बराबर है" - यह समानता पर आधारित नहीं है। मैं अब से पहले कि ने काट लिया गया है :)
सामान्य बाहरी आदेश के संचालन के अधिकांश लौट ERRORLEVEL 0 और यह आम तौर पर (लेकिन नहीं निरपवाद रूप से) इंगित करता है कि कोई त्रुटि आई थी:
c:\> dir
...
c:\> echo %ERRORLEVEL%
रेमंड चेन का एक अच्छा ब्लॉग पोस्ट है जिसका नाम ERRORLEVEL is not %ERRORLEVEL% है। बाहर की जाँच करने लायक
यह भी ध्यान देने योग्य है कि आरईएम कमांड जो ज्यादातर लोग टिप्पणी के रूप में सोचते हैं, वास्तव में नहीं हैं। आरईएम कमांड एक एनओपी कमांड है जो हमेशा सफल करता है। एक रेम के बाद, त्रुटि स्तर हमेशा होता है 0. तो
willalwaysfail.bat
REM unless you insert a comment after it
if errorlevel 1 goto fail
असफल कभी नहीं होगा ...
ज्यादातर Bulgar के सवाल का जवाब देने के लिए, लेकिन अन्य उत्तर के पूरक:
% के लिएकाम करने के लिए ERRORLEVEL% आपको कमांड एक्सटेंशन विंडोज में सक्रिय होना आवश्यक है (यह डिफ़ॉल्ट है)।
एक सत्र के लिए:
cmd /E:on
या स्थायी रूप से रजिस्ट्री
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions = 0x01
अधिक जानकारी के लिए
में:
cmd /?
[]]
- 1. विंडोज बैच फ़ाइल
- 2. विंडोज बैच फ़ाइल -
- 3. विंडोज बैच फ़ाइल
- 4. विंडोज बैच फ़ाइल (बीएटी)
- 5. विंडोज बैच फ़ाइल && ऑपरेटर
- 6. विंडोज बैच फ़ाइल
- 7. विंडोज बैच फ़ाइल PHP फ़ाइल
- 8. विंडोज बैच फ़ाइल में टाइमर
- 9. विंडोज बैच
- 10. विंडोज बैच
- 11. बैच फ़ाइल
- 12. विंडोज बैच फ़ाइल से कॉलिंग पावरहेल cmdlets
- 13. विंडोज बैच - एक छिपा फ़ाइल को नष्ट
- 14. विंडोज बैच फ़ाइल फ़ाइलों और फ़ोल्डरों
- 15. mysqldump कमांड के लिए विंडोज बैच फ़ाइल
- 16. विंडोज बैच फ़ाइल में सटीक स्ट्रिंग इको?
- 17. विंडोज बैच फ़ाइल: अंतिम प्रक्रिया का पीआईडी?
- 18. बैच फ़ाइल
- 19. बैच फ़ाइल
- 20. विंडोज बैच स्क्रिप्ट
- 21. विंडोज बैच स्क्रिप्ट
- 22. बैच फ़ाइल
- 23. बैच फ़ाइल के बाद चल रही बैच फ़ाइल बैच फ़ाइल
- 24. विंडोज बैच स्क्रिप्ट
- 25. विंडोज बैच फ़ाइलें: लूप
- 26. विंडोज बैच स्क्रिप्ट वायरस
- 27. फ़ाइल बैच द्वारा फ़ाइल बैच प्रतिलिपि
- 28. क्या "@" विंडोज बैच स्क्रिप्ट
- 29. कैसे एक बैच फ़ाइल
- 30. बैच फ़ाइल सशर्त कथन
मैं इस जवाब के साथ एक मामूली समस्या थी ... AFAIK, आप सेट कमांड में स्पेस का उपयोग नहीं कर सकते हैं, इसलिए इसे exitcode =% ERRORLEVEL% सेट किया जाना चाहिए। वैसे भी, यह परिवर्तन मेरे लिए काम किया। –
@ रिचर्डफॉसेट: संपादित, धन्यवाद। –