2017-04-07 100 views
-8

有了這個代碼,我想說Double IF不起作用?

if %var% > 5 AND if %var% <10 THEN. 

它爲2的,例如,「不」,但對於「11」的節目結束,而不是被封閉繼「else」你能不能幫我解決的這個?

代碼:

@echo off 
:DEBUT 
set /p "VAR=Type your text:" 
if %VAR% geq 5 (
    if %VAR% leq 10 (
echo YEAH 
goto DEBUT 
) 
) else (
echo NO 
goto DEBUT 
) 

輸出:

Type your text:2 
NO 
Type your text:4 
NO 
Type your text:5 
YEAH 
Type your text:6 
YEAH 
Type your text:8 
YEAH 
Type your text:10 
YEAH 
Type your text: 
+4

張貼代碼中的問題,而不是圖像 – epascarello

+1

沒有適用的' else'。 11被'if%var%geq 5'拾取,但它不會碰到'如果%var%let 10',並且沒有其他代碼需要處理以便腳本終止。 – SomethingDark

回答

1

這裏是一個重寫的嘗試。

@Echo Off 
:DEBUT 
Set/P "VAR=Type your text: " 
If %VAR% GEq 5 If %VAR% LEq 10 Echo=YEAH 
GoTo DEBUT 

編輯

如果你正在尋找輸出YEAH或NO在每一個場景,這裏有一個方法:

@Echo Off 
:DEBUT 
Set "_=" 
Set/P "VAR=Type your text: " 
If %VAR% GEq 5 If %VAR% LEq 10 Set "_=T" 
If Not Defined _ (Echo=NO) Else Echo=YEAH 
GoTo DEBUT 

和另:

@Echo Off 
:DEBUT 
Set/P "VAR=Type your text: " 
If %VAR% GEq 5 (If %VAR% LEq 10 (Echo YEAH) Else Echo NO) Else Echo NO 
GoTo DEBUT 
0

只是提供了另一種選擇:無需嵌套if小號

:DEBUT 
set "var=0" 
Set/P "VAR=Type your text: " 
If %VAR% lss 5 echo NO&goto :DEBUT 
If %VAR% gtr 10 echo NO&goto :DEBUT 
echo yes 
goto :DEBUT 

set "var=0"預設變量趕上空輸入(用戶只需按下RETURN)