Batch file 如果引用的环境变量大于0,如何输出变量值?
我目前有以下情况(或同等情况): 我也试过了Batch file 如果引用的环境变量大于0,如何输出变量值?,batch-file,Batch File,我目前有以下情况(或同等情况): 我也试过了 set strength+=0 if strength+>0 echo Strength Boost: %strength+% 及 及 每当操作到达第二行代码时,它就会自动关闭。我希望它只回显字符串中的变量和其他文本(如果还不清楚的话)。您似乎对if语句的工作原理感到困惑。让我们把命令分解一下 设置 set strength+=0 创建名为strength+的变量,其值为0。它可能是您想要的,但可能会与set/a算术
set strength+=0
if strength+>0 echo Strength Boost: %strength+%
及
及
每当操作到达第二行代码时,它就会自动关闭。我希望它只回显字符串中的变量和其他文本(如果还不清楚的话)。您似乎对
if
语句的工作原理感到困惑。让我们把命令分解一下
设置
set strength+=0
创建名为strength+
的变量,其值为0
。它可能是您想要的,但可能会与set/a
算术运算符混淆
如果 为了表示变量,我们用百分号包装变量名称:
%strength+%
批处理文件不支持使用
和
它的作用是:
变量:强度+
运算符:=
(指定值)
值:0
这会将名为strength+
的变量的值设置为0
它可能应该是什么:
变量:强度
运算符:+=
(增加变量)
值:0
它将变量强度增加0
但这仅适用于/a
开关:
set /a strength+=0
(乍一看似乎没有什么意义,但事实上它确保了变量已定义(如果以前未定义,则定义为0
,或者之前的值(不变-加零不会更改数字)))
因此,如果%strength+%…
没有任何意义,因为没有变量strength+
。如果%strength%…
有效,则应改为。如果%strength+%GTR 0回波强度增强:%strength+%
有效。只是因为您已将变量设置为0,所以它不会回显字符串。只需更改该值,然后查看IF命令的帮助,您将看到可以使用的所有运算符。我也不建议在变量名中使用+符号作为最后一个字符,因为在使用SET/AThank you时,它可以被视为赋值运算符,在您的帮助和一点常识(我犯了一些其他愚蠢的错误)的帮助下,代码得到了修复。
set strength+=0
if %strength+%>0 echo Strength Boost: %strength+%
set strength+=0
EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal
if %strength+% GTR 0 echo Strength Boost: %strength+%
set strength+=0
set /a strength+=0