目前不期望批次代码10

时间:2014-02-16 15:09:35

标签: batch-file runtime-error

这是我的代码。它一开始就会崩溃。

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作为变量的数字,而不是命令。求救!

1 个答案:

答案 0 :(得分:1)

我可以看到,你知道如何使用延迟扩展。但你错过了%num%也应该被推迟。如果我猜对了,random.bat设置变量num。所以

if %num% GEQ %eDEX% (

展开为(假设%dDEX%10):

if GEQ 10

会给你这个错误。

if !num! GEQ %eDEX% (

应该解决它。