Fichier batch Windows si autre utilisation

10

Désolé, je suis nouveau dans ce domaine. Je voudrais exécuter dans une certaine séquence le même fichier bat avec différents paramètres. J'ai écrit un fichier batch très simple:

@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

Cela ne fonctionne pas car elsen'est pas reconnu.

Un grand merci pour toute aide!

Paola
la source
De toute évidence, si ce n'est pas le problème que vous posez, mais ECHOle milieu de votre fichier batch ne doit-il pas être ECHO.ou quelque chose?
Scott
Ai-je répondu à votre question?
BDM

Réponses:

19

À partir de la ifdocumentation sur la ligne de commande (via help ifou disponible dans TechNet également).

La clause ELSE doit apparaître sur la même ligne que la commande après l'IF. Par exemple:

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

Ce qui suit ne fonctionnerait PAS car la commande del doit être terminée par une nouvelle ligne:

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

Le travail suivant ne fonctionnerait pas non plus, car la commande ELSE doit être sur la même ligne que la fin de la commande IF:

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


Donc, votre script fonctionnerait si vous remplaçiez

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

Avec

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

OU

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

J'espère que cela pourra aider.

BDM
la source
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
la source
1
Qu'est-ce que tous les @s?
BDM
@ProfPickle Masque les commandes de carte. Échantillon @ECHO OFFet ECHO OFF.
STTR
1
Je sais, mais vous n'avez pas besoin de l'utiliser une fois que vous l'avez mis echo off.
BDM
1
@ProfPickle Oui, c'est vrai, mais il y a eu des moments et des programmes ignorent ECHO OFFmais perçoivent @. Considérez-le comme un hommage à ma paranoïa ou à des cas historiques).
STTR
1
Très bien, je comprends la paranoïa.
BDM