【发布时间】:2013-12-22 05:18:09
【问题描述】:
所以这段代码有一些问题,可能只是一些我还没有注意到的标点错误,但由于某种原因我找不到它。
我读到这是如何使用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)。检查这个:ss64.com/nt/delayedexpansion.html -
哦,这不是顶部的完整代码,我有
@echo off和ENABLEDELAYEDEXPANSION的东西。
标签: variables batch-file while-loop do-loops