IF语句中的算术运算(批处理)

3

我目前正在学习批处理编程,但是遇到了一个问题。我尝试运行这个脚本,但不知何故它没有起作用:

set /a x=5
if %x%+1 equ 6 (@echo x + 1 is equal to 6)
echo [%x%+1]
echo.
pause

这是它打印的内容:
[5+1]

Press a key to continue...

基本上我只想知道如何在if语句中进行算术运算。

在批处理中无法这样做。执行算术操作的唯一命令是set /A,因此您必须首先进行操作(并将结果存储在变量中),然后在任何其他命令中使用该变量,比如if... - undefined
谢谢,这回答了我的问题。 - undefined
1个回答

3
==比较运算符总是进行字符串比较。只有当使用EQUNEQLSSLEQGTRGEQ比较运算符之一时,IF命令才会解析数字。任何要比较的值中出现非数字字符也将导致进行字符串比较。
只有在SET /a命令中允许使用算术表达式。
set /a "x=5"
set /a "y=x+1"
if %y% equ 6 (@echo x + 1 is equal to 6)
echo [%x%+1]=%y%
echo.
pause

1
我知道我可以添加那行代码,但在Lua编程语言中,我可以这样写:if x+1 == 6 then... 我想知道在批处理中能否做到这一点,如果可以,该如何实现? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接