2013-08-28 3 views
27

Используя команду паузы я обнаружил, что ошибка в первой строке этого кода:Меньше или равно

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

Что ошибка вы получаете? – Blorgbeard

+0

С его пакетным файлом, скорее всего, сбой. Наиболее вероятной ошибкой является «Недопустимое использование синтаксиса» или '« Нет такого пути или каталога »' – Monacraft

ответ

69

В пакете > является знаком переадресации, используемым для вывода данных в текстовый файл. Сравнить цит, что доступно (и рекомендуется) для ЦМД ниже (цитата из 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

'! =' Не работает. – Endoro

6

Нет => для если.
if %energy% GEQ %m2enc%

См. if /? для получения дополнительной информации.

4

Вы можете использовать:

EQU - равный

NEQ - не равно

LSS - менее

LEQ - меньше или равно

GTR - больше

GEQ - большие или равные

ИЗБЕЖАТЬ ИСПОЛЬЗОВАНИЕ:

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

Смежные вопросы