2011-10-10 28 views
4

我的腳本爲什麼我的if else if語句在批處理腳本中不起作用?

echo "Enter your choice (1 or 2 or 3) :" 
set /p dbchoice= 

IF %dbchoice EQU 1 ( 
    set dbtype="oracle" 
) ELSE ( 
    IF %dbchoice EQU 2 ( 
     set dbtype="sqlserver" 
    ) 
) ELSE ( 
    IF %dbchoice EQU 3 ( 
     set dbtype="db2" 
    ) 
) ELSE (
    echo "Incorrect choice" 
) 

我得到以下輸出:

E:\csmilm>set /p dbchoice= 
1 
ELSE was unexpected at this time. 
E:\csmilm>) ELSE (
E:\csmilm> 

有什麼問題嗎?

+0

在哪一行發生錯誤? – tenfour

+0

@tenfour:檢查我的部分輸出/而非錯誤 – Ricky

回答

10

關閉括號在錯誤的地方。 嘗試:

IF %dbchoice EQU 1 ( 
    set dbtype="oracle" 
) ELSE ( 
    IF %dbchoice EQU 2 ( 
     set dbtype="sqlserver" 
    ) ELSE ( 
     IF %dbchoice EQU 3 ( 
      set dbtype="db2" 
     ) ELSE (
      echo "Incorrect choice" 
     ) 
    ) 
) 
+0

它給了我'E:\ csmilm> set/p dbchoice = 1 E:\ csmilm> IF dbchoice EQU 1(set dbtype =「oracle」)ELSE(IF dbchoice EQU 2 (set dbtype =「sqlserver」)ELSE(IF dbchoice EQU 3(set dbtype =「db2」)ELSE(echo「Error choice」goto end_java_version)))「錯誤的選擇」E:\ csmilm> endlocal' – Ricky

+0

windows批處理文件不知道什麼是整數。嘗試'if%dbchoice equ「1」' –

+0

仍然無效我添加了'IF%dbchoice EQU「1」',甚至'IF%dbchoice ==「1」' – Ricky