2016-11-11 251 views
0

有運行我的批處理文件中的困難時期。
我相信這與我的if語句有關,它不會通過。
我總是以「如果在這個時候意外」結束。
請任何幫助非常感謝Windows批處理標籤循環

:firstNumber 
set /p "firstNum = Enter the first number (other than 22) " 
if "%firstNum%"=="22" (
goto :end 
) else (
goto :secondNumber 
) 

:secondNumber 
set /p "secondNum = Enter the second number (other than 22 and 0) " 
if "%secondNum%"=="22" (
goto :end 
) if "%secondNum%"=="0" (
goto :errorNumber 
) else (
goto :command 
) 

:errorNumber 
echo You cannot divide by 0 
goto :secondNumber 

:command 
set /a quotient=%firstNum%/%secondNum% 
echo "%firstNum% divided by %secondNum% = !quotient! 

:end 
+0

我想,以限定的情況下的默認用戶只需按下_enter_,如'設置「firstNum = 0」'和'設置「secondNum = 0」''之前設置/ P'插入標準'set'命令, 分別;那麼我會從'if'比較中刪除引號,並用'EQU'替換運算符'=='以便進行數字比較而不是字符串比較(如'if%secondNum%EQU 0');最後,我會縮進一對括號中的所有命令以提高可讀性... – aschipfl

回答

0
) if "%secondNum%"=="0" (

應該

) 
if "%secondNum%"=="0" (

)終止先前的if聲明。 cmd看到該行的其餘部分的東西,不應該遵循)


(後 - 缺少操作數...)

批次是在SET聲明空格敏感。 SET FLAG = N一個名爲「FLAG 空間」變量設置到「空間 N」

因此,一個值,你set /p "firstnum = ...設置一個名爲「firstNum 空間」變量 - 這是不一樣的變量「 firstNum」

由於既不firstnum也不secondnum包含值,cmd看到

集合/的商=/

失去了=的兩側的空間在你的set語句。

+0

我做了更改後,我現在收到的錯誤是「缺少操作數除以=」 –