使用pause命令我发现错误在此代码的第一行:
if %choice% == 1 if %energy% => %m2enc% set /a enemhp=%enemhp%-%m1hpd%+%earmr%
pause
set /a energy= %energy%-%m1enc%
set /a hp= %hp%-%edefense%
set /a defense= %defense%+1
goto battle
所以不要说我忘了设置能量和m2enc,因为我只是在不同的部分,我也尝试用%energy%
替换10
和m2enc%
1
但它仍然无效,我尝试将=>
替换为>=
和LSQ
(显然是小于或等于的替代方案)所以我希望知道这部分的错误。
答案 0 :(得分:84)
批处理中,>
是一个重定向符号,用于将数据输出到文本文件中。 cmd的比较运算(推荐)低于(引用if /?
帮助):
where compare-op may be one of:
EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal
这应该解释你想要什么。唯一的其他比较操作是==
,可以使用if not
参数进行切换。除此之外,还依赖于这三个字母。
答案 1 :(得分:7)
if没有=>
使用if %energy% GEQ %m2enc%
有关其他详细信息,请参阅if /?
。
答案 2 :(得分:4)
您可以使用:
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
避免使用:
() ! 〜 - * /% + - << >> &安培; | = * = / =%= + = - = & = ^ = | =<< =>> =