में/किसी और बयान एक खोल स्क्रिप्ट मैं निम्नलिखित कोड है में:अगर/फिर Windows बैच
if echo Mr.32 ; then
echo Success
else
echo Failed
exit
fi
विंडोज बैच फ़ाइलों के लिए बराबर वाक्य रचना क्या है?
में/किसी और बयान एक खोल स्क्रिप्ट मैं निम्नलिखित कोड है में:अगर/फिर Windows बैच
if echo Mr.32 ; then
echo Success
else
echo Failed
exit
fi
विंडोज बैच फ़ाइलों के लिए बराबर वाक्य रचना क्या है?
मुझे एक कठिन समय लग रहा है जब ईसीएचओ वापस लौटाए गए ERRORLEVEL के साथ असफल हो जाएगा। मुझे लगता है कि आउटपुट को फ़ाइल में रीडायरेक्ट किया गया है और लक्ष्य ड्राइव पूर्ण हो गया है, तो यह असफल हो सकता है।
सीपीटीएचमर ने ERRORLEVEL का उपयोग करके एक अच्छा समाधान पोस्ट किया है, हालांकि यह अनावश्यक रूप से गोटो का उपयोग करता है। इसे बिना गोटो के इस्तेमाल किया जा सकता है:
ECHO Mr.32
if errorlevel 1 (
echo Failed
exit /b
) else (
echo Success
)
किसी भी आदेश की सफलता या विफलता पर कार्रवाई करने का एक आसान तरीका है।
command && success action || failure action
अपने मामले
ECHO Mr.32&& (
echo Success
) || (
echo Failed
exit /b
)
यदि त्रुटिलेवल 1 (कमांड समूह 1) अन्य (कमांड समूह 2) ऊपर दिए गए किसी भी रिटर्न कोड के लिए कमांड समूह 1 निष्पादित करेगा। (यानी: कमांड समूह 1 विफल है और कमांड समूह 2 सफलता है) – cptHammer
"कमांड एंड सफलता सफलता || विफलता कार्रवाई" यह बहुत अच्छा है इस सवाल का जवाब। सहायता के लिए धन्यवाद! –
मुझे लगता है कि कुछ इस तरह चाल कर सकता:
REM run the command
ECHO Mr.32
IF ERRORLEVEL 1 GOTO failLabel
:successLabel
REM put code to execute in case of success here.
ECHO Success
GOTO endLabel
:failLabel
REM put code here that should be executed in case of failure.
ECHO Failed
:endLabel
इसका मतलब यह है आदेश आप (यहाँ: MR.32 गूंज) परीक्षण करना चाहते हैं सफलता और कुछ भी विफलता (सावधान पर उच्च पर रिटर्न 0: इको अधिकांश विंडोज़ ओएस में कुछ भी वापस नहीं आएगा और इसलिए, इस स्क्रिप्ट में परीक्षण किया गया वास्तविक मान शायद स्क्रिप्ट से पहले निष्पादित अंतिम कमांड से रिटर्न कोड है। आप शायद कमांड के साथ परीक्षण करने के बेहतर हैं: "DIR someFile.txt "अगर कुछfile.txt मौजूद है और 1 अन्यथा है तो 0 वापस आ जाएगा।)
यह सच है क्योंकि डबेंहम ने बताया कि यह संरचना बहुत सारे गोटो का उपयोग करता है। ऐसा इसलिए है क्योंकि यह गोटो संरचना केवल एक ही है जिसे सभी विंडोज संस्करणों में ठीक समझा जाएगा। अधिक कॉम्पैक्ट संस्करण समय के साथ दिखाई दिए लेकिन वे केवल हाल के विंडोज संस्करणों पर ही काम करेंगे।
हाँ echo Mr.32 0 देता है अगर इसकी सफलता पूर्ण हो जाती है लेकिन यहां यह असफल लेबल में जाती है ... –
अधिकांश विंडोज संस्करणों में, इको कमांड कुछ भी नहीं देता है। इसलिए, यदि स्क्रिप्ट निष्पादन विफल होने से पहले अंतिम जारी आदेश विफल हुआ, तो यह असफल संदेश देगा। दूसरी तरफ, यदि इस स्क्रिप्ट से पहले निष्पादित अंतिम आदेश सफल था, तो आपको सफलता संदेश मिलेगा। – cptHammer
में आप हमारे साथ साझा कर सकते हैं कि तुम क्या अब तक की कोशिश की? – Levon
http://mevaldez.home.mchsi.com/Batch.pdf – larsks
FYI: 'अगर eval echo foo'' echo foo' होना चाहिए; eval का उपयोग कर कोई उद्देश्य नहीं है। यह भी देखें http://mywiki.wooledge.org/BashFAQ/048 –