在Windows批处理脚本中评估表达式

在Windows批处理脚本中评估表达式

这个问题可能是有史以来最愚蠢的问题,因为我可能忽略了显而易见的东西。无论如何,问题来了:你能在批处理脚本中评估表达式吗?例如,我想将两个数字相加并打印结果:

echo 4+2

这只会打印“4+2”,而不是“6”。也许我在 Windows 上使用批处理脚本有点过头了……

谢谢!

答案1

这边走:

Set /a 4+2

或者将其存储在变量中以供以后使用:

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

回答你最后一句,很有可能你对批处理的推动超出了预期。你的机器上有 Windows Script host,允许 VBScript 或 JScript。另外,如果你无论如何都要学习新东西,我强烈建议你改用 Powershell。

答案2

set Result=0

echo start %Result%

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

echo finish %result%

pause >nul

答案3

如果你安装了 bash/perl (例如 cygwin),只需调用它们来进行计算:

@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%

示例结果:

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

相关内容