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!


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.


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
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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.