0

I wrote the following batch script, but keep getting a missing operator error

   set /a control=1
   
   goto :while

   :while
   if "!control!"=="1" (
   set /p FirstNumber=Please enter your first number: 
   
   set /p SecondNumber=Please enter your Second number: 
   
   set /a result=%FirstNumber%/%SecondNumber%
   
   echo %FirstNumber% divided by %SecondNumber% = %result%
   
   echo %FirstNumber% divided by %SecondNumber% = %result% >> results.txt

   goto :while
   
   )
   
   

   pause

When I run this code, I keep getting a missing operand error. This is my output:

Please enter your first number 1: 10 Please enter your second number 1: 2 Missing operand. divided by =

aschipfl
  • 33,626
  • 12
  • 54
  • 99

1 Answers1

0

setlocal enabledelayedexpansion when setting and using a variabled inside a code block:

@echo off
setlocal enabledelayedexpansion
set /a control=1
:while
if !control! equ  1 (
   set /p FirstNumber=Please enter your first number: 
   set /p SecondNumber=Please enter your Second number: 
   set /a result=FirstNumber / SecondNumber
   echo !FirstNumber! divided by !SecondNumber! = !result! 
   echo !FirstNumber! divided by !SecondNumber! = !result!
   goto :while
 )

and without needing the parenthesized code block and obviously no need for delayedexpansion

@echo off
set /a control=1
:while
if not %control% equ 1 goto :eof
set /p FirstNumber=Please enter your first number: 
set /p SecondNumber=Please enter your Second number: 
set /a result=FirstNumber / SecondNumber
echo %FirstNumber% divided by %SecondNumber% = %result% 
echo %FirstNumber% divided by %SecondNumber% = %result%
goto :while
Gerhard
  • 22,678
  • 7
  • 27
  • 43