This one could turn out as the dumbest question ever, as I am probably missing out the obvious. Anyway, here it is: Can you evaluate expressions in a batch script. For example, I want to add two numbers and print the result:

echo 4+2

This will just print "4+2", not "6". Maybe I am taking batch scripting on windows a little bit too far...



This way:

Set /a 4+2

Or to store it in a variable for later:

Set /a foo = 4+2
echo %foo%

And to answer your last line, there is a good chance that you may be pushing batch a little further than intended. The Windows Script host is available on your machine and would allow VBScript or JScript. Also if you are going to learn something new anyway I would highly suggest using Powershell instead.

  • that's echo %foo% – Bob Aug 28 '09 at 15:42
set Result=0

echo start %Result%

echo Adding 4 and 2
set /a Result= 4+2

echo finish %result%

pause >nul

If you have bash/perl installed (eg. cygwin), just call them to do the math:

@for /f "delims=" %%a in ('perl -e "print(%*)"'        ) do @set RESULT=%%a
@echo %RESULT%

@for /f "delims=" %%a in ('bash -c "echo $((%*))"'        ) do @set RESULT=%%a  
@echo %RESULT%

Sample result:

c:\> script.cmd  2**10/3

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.