Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file IF语句中的算术(批处理)_Batch File_Math_If Statement - Fatal编程技术网

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

Batch file IF语句中的算术(批处理),batch-file,math,if-statement,Batch File,Math,If Statement,我目前正在学习如何批量编程,但我遇到了一个问题。我尝试运行此脚本,但不知何故它无法运行: 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语句中进行算术运算。比较运算符总是导致字符串比较。仅当使用eq,NEQ,LSS,LEQ,GTR,GEQ比较运算符之一时,才会解析数字

我目前正在学习如何批量编程,但我遇到了一个问题。我尝试运行此脚本,但不知何故它无法运行:

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语句中进行算术运算。

比较运算符总是导致字符串比较。仅当使用
eq
NEQ
LSS
LEQ
GTR
GEQ
比较运算符之一时,才会解析数字。任何比较值中的非数字字符也会导致字符串比较

仅在命令中允许使用算术表达式。你可以用

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

我知道我可以添加这一行,但在Lua编程语言中,如果x+1==6,我就可以编写
,然后…
,我的问题是,我可以批量完成这项工作吗?如果可以,如何完成?您不能批量完成这项工作。执行算术运算的唯一命令是
set/A
,因此您必须首先执行该操作(并将结果存储在变量中),然后在任何其他命令中使用该变量,如
if
…谢谢您回答了我的问题