8

Извините, я новичок в этом деле. Я бы хотел запустить в определенной последовательности один и тот же bat-файл с разными параметрами. Я написал очень простой командный файл:

@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 не распознан.

Большое спасибо за любую помощь!

2 ответа2

17

Из документации if в командной строке (через help if или тоже доступно в TechNet ).

Предложение ELSE должно находиться в той же строке, что и команда после IF. Например:

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

Следующее НЕ будет работать, потому что команда del должна быть завершена символом новой строки:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .