Reputation: 37
I am making a batch file that looks like this:
set /a "number1"="%1"
set /a "number2"="%2"
if "%number1%" GTR "%number2%" echo %number1% Is Greater Than %number2%. & exit /b
if "%number1%" LSS "%number2%" echo %number1% Is Less Than %number2%. & exit /b
if "%number1%" EQU "%number2%" echo %number1% Is Equal To %number2%. & exit /b
When I ran it from cmd like this:
Calc.bat 4 10
It said that 4 was greater than 10. how can I fix it and why does this happen?
Upvotes: 0
Views: 35
Reputation: 881553
You should get rid of the vast majority of all those "
(double quote) characters, they're making the comparison a lexicographical one rather than a numeric one:
@echo off
set /a "number1=%1"
set /a "number2=%2"
if %number1% GTR %number2% echo %number1% Is Greater Than %number2%. & exit /b
if %number1% LSS %number2% echo %number1% Is Less Than %number2%. & exit /b
if %number1% EQU %number2% echo %number1% Is Equal To %number2%. & exit /b
Result:
C:\Users\pax> testprog.cmd 4 10
4 Is Less Than 10.
Upvotes: 3