Windows批处理文件(如果不使用)


10

抱歉,我是新手。我想以一定的顺序运行具有不同参数的相同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无法识别。

非常感谢您的帮助!


显然,这是否不是您要问的问题,但是ECHO批处理文件中间的内容不是必需的ECHO.吗?
斯科特

我回答了你的问题吗?
BDM

Answers:


19

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
)

希望能有所帮助。


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
所有的@s是什么?
BDM

@ProfPickle隐藏地图命令。样品@ECHO OFFECHO OFF
STTR 2013年

1
我知道,但是一旦放完就不需要使用它echo off
BDM

1
@ProfPickle是的,是的,但是有时会被程序忽略,ECHO OFF但是会感知到@。认为这是对我的偏执狂或历史案例的致敬。
STTR

1
公平地说,我理解偏执狂。
BDM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.