Windows 批处理文件 if else 用法

Windows 批处理文件 if else 用法

抱歉,我对这个东西还不熟悉。我想按一定顺序运行具有不同参数的同一个 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由于无法识别,因此它不起作用。

非常感谢您的帮助!

答案1

从命令行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
)

希望有所帮助。

答案2

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

相关内容