विंडोज बैच फ़ाइल अगर और उपयोग


10

क्षमा करें, मैं इस सामान के लिए नया हूं। मैं एक निश्चित क्रम में विभिन्न मापदंडों के साथ एक ही बैट फाइल चलाना चाहता हूं। मैंने एक बहुत ही सरल बैच फ़ाइल लिखी है:

@echo off

REM Note: to see all command line usage options, run bsearch_headless.bat without any arguments.

call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o pippo

ECHO
IF EXIST pippo.finalBests.csv (call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o topolino)
else goto :eof  

:eof
ECHO Simulatione End!
PAUSE

यह काम नहीं करता क्योंकि elseमान्यता प्राप्त नहीं है।

किसी भी मदद के लिए बहुत शुक्रिया!


जाहिर है, अगर आप जिस समस्या के बारे में पूछ रहे हैं, वह नहीं है, लेकिन क्या ECHOआपकी बैच फ़ाइल के बीच में ECHO.कुछ होना चाहिए या नहीं?
स्कॉट

क्या मैंने आपके प्रश्न का उत्तर दिया है?
बीडीएम

जवाबों:


19

ifकमांड लाइन पर प्रलेखन से ( TechNet में भी उपलब्धhelp if या उपलब्ध है)।

IF के बाद कमांड के रूप में ELSE क्लॉज उसी लाइन पर होना चाहिए। उदाहरण के लिए:

IF EXIST filename. (
    del filename.
) ELSE (
    echo filename. missing.
)

निम्न काम नहीं करेगा क्योंकि नई कमांड द्वारा डेल कमांड को समाप्त करने की आवश्यकता है:

IF EXIST filename. del filename. ELSE echo filename. missing

और न ही निम्न कार्य, चूंकि ELSE कमांड IF कमांड के अंत में समान लाइन पर होना चाहिए:

IF EXIST filename. del filename.
ELSE echo filename. missing


इसलिए, यदि आप प्रतिस्थापित करते हैं तो आपकी स्क्रिप्ट काम करेगी

IF EXIST pippo.finalBests.csv (call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o topolino)
else goto :eof 

साथ में

IF EXIST pippo.finalBests.csv (call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o topolino) else goto :eof

या

IF EXIST pippo.finalBests.csv (
    call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o topolino
) else (
    goto :eof
)

उम्मीद है की वो मदद करदे।


0

ifelf.cmd:

@ECHO OFF
@IF EXIST "C:\boot.ini" (
@ECHO WoW! It may be M$Windows! 
) ELSE (
@ECHO Boot.ini Lost! My precious! Stolen! 
)
@ECHO .
@ECHO Wait 10 sec ...
@ping 127.0.0.1 -n 10 > NUL

1
सभी के साथ क्या है @?
बीडीएम

@ProfPickle नक्शे के आदेशों को छिपाता है। नमूना @ECHO OFFऔर ECHO OFF
STTR

1
मुझे पता है, लेकिन आपको इसे एक बार इस्तेमाल करने की आवश्यकता नहीं है echo off
बीडीएम

1
@ProfPickle हाँ, यह है, लेकिन वहाँ गया समय और कार्यक्रमों की अनदेखी की है ECHO OFFलेकिन मानता @। इसे मेरे व्यामोह या ऐतिहासिक मामलों के लिए एक श्रद्धांजलि के रूप में सोचें)।
STTR

1
पर्याप्त रूप से, मैं व्यामोह को समझता हूं।
बीडीएम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.