42

使用 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,因为我只是在不同的部分做了,我也尝试用and替换%energy%10仍然m2enc%不起作用1,我尝试用=>and>=替换LSQ(显然是也可以选择小于或等于)所以我想知道这部分有什么问题。

4

3 回答 3

101

在批处理中,>是用于将数据输出到文本文件的重定向标志。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参数切换的。其他则依赖于这三个字母。

于 2013-08-28T23:20:03.070 回答
9

如果没有=>
利用if %energy% GEQ %m2enc%

有关if /?其他一些详细信息,请参阅。

于 2013-08-28T23:20:46.243 回答
5

您可以使用:

EQU - 相等

NEQ - 不等于

LSS - 小于

LEQ - 小于或等于

GTR - 大于

GEQ - 大于或等于

避免使用:

()!~ - * / % + - << >> & | = *= /= %= += -= &= ^= |= <<= >>=

于 2016-01-23T17:54:57.313 回答