Plik wsadowy Windows, jeśli jest inny

10

Przepraszam, jestem nowy w tych sprawach. Chciałbym uruchomić w określonej sekwencji ten sam plik nietoperza z różnymi parametrami. Napisałem bardzo prosty plik wsadowy:

@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

To nie działa, ponieważ elsenie zostało rozpoznane.

Wielkie dzięki za jakąkolwiek pomoc!

Paola
źródło
Oczywiście, jeśli nie jest to problem, o który pytasz, ale czy ECHOpośrodku pliku wsadowego nie musi być, ECHO.czy coś?
Scott,
Czy odpowiedziałem na twoje pytanie?
BDM

Odpowiedzi:

19

Z ifdokumentacji w wierszu poleceń (za pośrednictwem help iflub dostępnej również w TechNet ).

Klauzula ELSE musi występować w tym samym wierszu co polecenie po IF. Na przykład:

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

Poniższe NIE działałoby, ponieważ polecenie del musi zostać zakończone znakiem nowej linii:

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

Poniższa metoda również nie zadziała, ponieważ polecenie ELSE musi znajdować się w tym samym wierszu, co koniec polecenia IF:

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


Skrypt działałby, gdybyś go zastąpił

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

Z

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

LUB

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

Mam nadzieję, że to pomaga.

BDM
źródło
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
STTR
źródło
1
O co chodzi z tymi wszystkimi @?
BDM
@ProfPickle Ukrywa polecenia mapy. Próbka @ECHO OFFi ECHO OFF.
STTR,
1
Wiem, ale nie musisz go używać po włożeniu echo off.
BDM
1
@ProfPickle Tak, tak, ale były czasy i programy ignorują, ECHO OFFale postrzegają @. Pomyśl o tym jako hołd dla mojej paranoi lub historycznych przypadków).
STTR
1
W porządku, rozumiem paranoję.
BDM