2015-08-28 30 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被接受。

相關問題