Windows-Batchdatei, falls sonst verwendet

10

Entschuldigung, ich bin neu in diesem Zeug. Ich möchte in einer bestimmten Reihenfolge dieselbe Bat-Datei mit unterschiedlichen Parametern ausführen. Ich habe eine sehr einfache Batch-Datei geschrieben:

@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

Es funktioniert nicht, weil elsees nicht erkannt wird.

Vielen Dank für jede Hilfe!

Paola
quelle
Natürlich, wenn es nicht das Problem ist, nach dem Sie fragen, aber muss es nicht ECHOdie Mitte Ihrer Batch-Datei sein ECHO.oder so?
Scott
Habe ich deine Frage beantwortet?
BDM

Antworten:

19

Aus der ifDokumentation in der Befehlszeile (über help ifoder auch in TechNet verfügbar ).

Die ELSE-Klausel muss in derselben Zeile wie der Befehl nach der IF stehen. Zum Beispiel:

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

Folgendes würde NICHT funktionieren, da der Befehl del durch einen Zeilenumbruch beendet werden muss:

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

Das Folgende würde auch nicht funktionieren, da sich der ELSE-Befehl in derselben Zeile wie das Ende des IF-Befehls befinden muss:

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


Ihr Skript würde also funktionieren, wenn Sie es ersetzen würden

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

Mit

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

ODER

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

Ich hoffe, das hilft.

BDM
quelle
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
quelle
1
Was ist mit all den @s?
BDM
@ProfPickle Blendet Kartenbefehle aus. Probe @ECHO OFFund ECHO OFF.
STTR
1
Ich weiß, aber Sie müssen es nicht mehr verwenden, wenn Sie es einmal gesetzt haben echo off.
BDM
1
@ProfPickle Ja, das ist es, aber es gab Zeiten und Programme, die ignoriert, ECHO OFFaber wahrgenommen wurden @. Betrachten Sie es als eine Hommage an meine Paranoia oder an historische Fälle.
STTR
1
Fair genug, ich verstehe Paranoia.
BDM