if %adec1% == 2 (
set /a weapons=1
set /a clothing=0
goto poop
)
if weapons=1 (
echo Good job sir!
)
Можете ли вы определить разницу между этими фрагментами?
В первом синтаксис %varname%
используется для доступа к значению переменной. Во втором ... литерал weapons
сравнивается с 1
- или если бы вы использовали правильный оператор сравнения (==`` or
equ`)
cmd
пытается понять смысл if weapons=1 (
и на самом деле вполне доволен if weapons=1
- то есть он решает, что это строка. Затем он ищет оператор сравнения и не понимает (
, поскольку это недопустимый оператор сравнения.
Если вы запустите пакет из командной строки, а не нажмете ярлык, то cmd
ответит взаимностью, показывая вам сообщение об ошибке.