Меньше или равно
Используя команду 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
(по-видимому, альтернативу для меньше или равно). Поэтому я хотел бы знать, что не так с этой частью.
Ответы
Ответ 1
В пакетном режиме >
представляет собой знак переадресации, используемый для вывода данных в текстовый файл. Сравнение op доступно (и рекомендуется) для 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
. Другие, которые полагаются на эти три буквы.
Ответ 2
Нет =>
для if.
Используйте if %energy% GEQ %m2enc%
См. if /?
для некоторых других деталей.
Ответ 3
Вы можете использовать:
EQU - equal
NEQ - не равно
LSS - меньше
LEQ - меньше или равно
GTR - больше, чем
GEQ - больше или равно
ИЗБЕЖАТЬ ИСПОЛЬЗОВАНИЯ:
()
! ~ -
*/%
+ -
& Л; < → & Амп;
|
= * =/=% = + = - = & = ^ = | = < <= < = → =