Пакетный файл Windows, если еще используется


10

Извините, я новичок в этом деле. Я бы хотел запустить в определенной последовательности один и тот же 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не признается.

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


Очевидно, что если проблема не в том, о чем вы спрашиваете, но разве ECHOв середине вашего командного файла не должно быть ECHO.или что-то еще?
Скотт

Я ответил на ваш вопрос?
BDM

Ответы:


19

Из 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

1
Что со всеми @с?
BDM

@ProfPickle Скрывает команды карты. Образец @ECHO OFFи ECHO OFF.
STTR

1
Я знаю, но вам не нужно использовать его, как только вы положите echo off.
БДМ

1
@ProfPickle Да, это так, но были времена, и программы игнорировали, ECHO OFFно воспринимали @. Думайте об этом как дань моей паранойе или историческим случаям).
STTR

1
Справедливо, я понимаю паранойю.
BDM
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.