Так что в этом коде есть какая-то проблема, возможно, это лишь некоторая ошибка пунктуации, которую я еще не заметил, но по какой-то причине я не могу ее найти.Batch Program Issue if-then Math
Я читал, что это как сделать цикл с Do
, а затем количество раз, в данном случае '%dmg%
', скажите, если это было неверно.
У меня есть части, которые определяют переменные; set dmgt=0
set /a wl=1000*%upts%/%epts%
и у меня есть все остальные.
Используя команду pause, я обнаружил, что это проблема;
if %upts%*%utroop% LEQ %epts%*%etroopt% (goto fail
) else (set /a dmg=%wl%*%etroop%/1000
set /a dmgt=%dmg%+%dmgt%
do %dmg%
SET /A type=%RANDOM% * 3/32768 + 1
if %type% == 1 (if %snip% GEQ 1 (set /a dmg=%dmg%-1
set /a snip=%snip%-1
)
)
if %type% == 2 (if %mgs% GEQ 1 (set /a dmg=%dmg%-2
set /a mgs=%mgs%-1
)
)
if %type% == 3 (if %rif% GEQ 1 (set /a dmg=%dmg%-1
set /a rif=%rif%-1
)
)
enddo
)
Вы можете найти 'ENABLEDELAYEDEXPANSION' то, что вы ищете. (Я не могу проверить, работает ли Linux сегодня). Проверьте это: http://ss64.com/nt/delayedexpansion.html – GregHNZ
О, это не полный код наверху. У меня есть «@echo off» и «ENABLEDELAYEDEXPANSION». – Andenrx