2014-11-03 19 views
0
SETLOCAL ENABLEDELAYEDEXPANSION 
SET /A Counter = 0 
SET /A Limit = 5 

:File_Check 
IF EXIST D:\Automation\OTOT_OBAL\Automation\myfilter.jar ( 

      GOTO Trigger_Found 
      ) 

       ELSE IF %Counter% LSS %Limit% (
              timeout /t 5 /nobreak >null 
              SET /A Counter = Counter + 1 
              GOTO File_Check 
              ) 

        GOTO (VERYEND) 


ENDLOCAL 

:Trigger_Found 
echo ON 
echo TRIGGER FOUND 
Exit 

:VERYEND 
echo !Counter! 
echo program has reached maximum wait time we are going to exit. 
Exit 

回答

0

else是多余的,但如果使用的话必须在同一物理线路作为最终的前述)

目标goto是标签(veryend)而不是标签veryend


在没有当前代码:

IF EXIST D:\Automation\OTOT_OBAL\Automation\myfilter.jar ( 
GOTO Trigger_Found 
) ELSE IF %Counter% LSS %Limit% (
timeout /t 5 /nobreak >null 
SET /A Counter = Counter + 1 
GOTO File_Check 
) 

GOTO VERYEND 

应该工作

IF EXIST D:\Automation\OTOT_OBAL\Automation\myfilter.jar GOTO Trigger_Found 
IF %Counter% LSS %Limit% (
timeout /t 5 /nobreak >null 
SET /A Counter = Counter + 1 
GOTO File_Check 
) 

GOTO VERYEND 

可能会更好。

+0

该脚本可以工作,但它抱怨ELSE未被识别。如何在没有ELSE的情况下重写这段代码? – amanda 2014-12-07 03:19:43