2015-08-28 28 views
0

这是脚本意外:ELSE在这个时候批处理文件

@echo off 
 

 
set BSL_Scripter_go="BSL_Scripter.exe" 
 
set BSL_Script=WriteMain_s.txt 
 
set yes=Y 
 
set no=N 
 

 

 
::%BSL_Scripter_go% %BSL_Script% 
 

 
:LABEL1 
 
set /p answer=Have you turned device off?[Y\N] 
 

 
IF "%answer%"=="%yes%" (GOTO LABEL_DEVICE_RUN 
 
) ELSE (IF "%answer%"=="%no%"(GOTO LABEL1) ELSE (GOTO LABEL_TYPO)) 
 

 
:LABEL_DEVICE_RUN 
 
echo Device is runing.. 
 
GOTO END 
 

 
:LABEL_TYPO 
 
echo UNCORRECT ANSWER, PLEASE TYPE 'Y' or 'N' 
 
GOTO LABEL1 
 

 
:END

,我得到了错误:

ELSE was unexpected at this time

一点帮助?

回答

2

有一个SPACE失踪"%no%"(GOTO LABEL1)之间:

IF "%answer%"=="%no%" (GOTO LABEL1) 

否则,"%no%"(GOTO是比较字符串,因此关闭)太多。命令行解释器尝试执行以下行(省略值和命令用于可视化):

IF <value>==<value> (command) ELSE (IF value==value command) ELSE (command)) 

你会发现,它看起来像有两个ELSE条款为第IF声明。

侧面说明:我建议使用/IF /I "%answer%"==...使Y/Ny/n被接受。

相关问题