Archivo por lotes de Windows si más uso


10

Lo siento, soy nuevo en estas cosas. Me gustaría ejecutar en una secuencia determinada el mismo archivo bat con diferentes parámetros. Escribí un archivo por lotes muy 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

No funciona porque elseno se reconoce.

¡Muchas gracias por cualquier ayuda!


Obviamente, si no es el problema que está preguntando, pero ¿no es necesario que se encuentre ECHOen el medio de su archivo por lotes ECHO.o algo así?
Scott

¿He respondido tu pregunta?
BDM

Respuestas:


19

De la ifdocumentación en la línea de comando (vía help ifo disponible en TechNet también).

La cláusula ELSE debe aparecer en la misma línea que el comando después del IF. Por ejemplo:

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

Lo siguiente NO funcionaría porque el comando del necesita ser terminado por una nueva línea:

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

Tampoco funcionaría lo siguiente, ya que el comando ELSE debe estar en la misma línea que el final del comando IF:

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


Entonces, su script funcionaría si reemplazara

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

Con

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

O

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

Espero que ayude.


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
¿Qué pasa con todos los @s?
BDM

@ProfPickle Oculta los comandos del mapa. Muestra @ECHO OFFy ECHO OFF.
STTR

1
Lo sé, pero no necesitas usarlo una vez que lo pones echo off.
BDM

1
@ProfPickle Sí, lo es, pero ha habido momentos y los programas ignoran ECHO OFFpero perciben @. Piense en ello como un homenaje a mi paranoia o casos históricos).
STTR

1
Muy bien, entiendo la paranoia.
BDM
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.