这是我的代码。它一开始就会崩溃。
if %CHO%==1 (
if %WEP%==None (
set DMGmod=0
)
if %WEP%==Broadsword (
set DMGmod=5
)
if %WEP%==Shortsword (
set DMGmod=4
)
if %WEP%==Axe (
set DMGmod=7
)
if %WEP%==Mace (
set DMGmod=10
)
if %WEP%==Dagger (
set DMGmod=3
)
if %WEP%==Shortbow (
set DMGmod=5
)
if %WEP%==Longbow (
set DMGmod=8
)
if %WEP%==Crossbow (
set DMGmod=15
)
if %DMGPTN%==true (
set /a DMGmod=!DMGmod!+10
)
set /a DMG=%DMG%+!DMGmod!
if %ATKPTN%==true set /a ATKmod=%ATK%+10
set min=1
set max=!ATKmod!
call random.bat
if %num% GEQ %eDEX% (
set min=1
set max=!DMGmod!
call random.bat
if %DMGPTN%==true (
set /a damage=%num%+10
goto hit
) else (
set damage=%num%
goto hit
)
) else (
goto miss
)
)
当我运行此代码时,它会崩溃并说“此时不会预期10”。我多次检查过,我找不到出错的地方。我不知道这意味着什么意味着什么。我使用10作为变量的数字,而不是命令。求救!
答案 0 :(得分:1)
我可以看到,你知道如何使用延迟扩展。但你错过了%num%
也应该被推迟。如果我猜对了,random.bat
设置变量num
。所以
if %num% GEQ %eDEX% (
展开为(假设%dDEX%
为10
):
if GEQ 10
会给你这个错误。
if !num! GEQ %eDEX% (
应该解决它。