Windows 批处理文件如果其他用法

Pao*_*ola 10 windows batch command-line batch-file

对不起,我是这个东西的新手。我想以特定顺序运行具有不同参数的相同 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
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为else不被识别。

非常感谢您的帮助!

BDM*_*BDM 20

来自if命令行上的文档(通过help if在 TechNet 中可用)。

ELSE 子句必须与 IF 之后的命令出现在同一行。例如:

IF EXIST filename. (
    del filename.
) ELSE (
    echo filename. missing.
)
Run Code Online (Sandbox Code Playgroud)

以下将不起作用,因为 del 命令需要由换行符终止:

IF EXIST filename. del filename. ELSE echo filename. missing
Run Code Online (Sandbox Code Playgroud)

以下也不行,因为 ELSE 命令必须与 IF 命令的结尾在同一行:

IF EXIST filename. del filename.
ELSE echo filename. missing
Run Code Online (Sandbox Code Playgroud)


所以,如果你替换了你的脚本就会工作

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

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

或者

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

希望有帮助。