Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如果%sx%==1(转到%zz5%),此时转到是意外的_Batch File_Go To Definition - Fatal编程技术网

Batch file 如果%sx%==1(转到%zz5%),此时转到是意外的

Batch file 如果%sx%==1(转到%zz5%),此时转到是意外的,batch-file,go-to-definition,Batch File,Go To Definition,我正在开发一款RPG风格的批量游戏,但我一直发现goto在这个时候出人意料。我已经检查了我的代码好几个小时了,仍然不知道它为什么要这样做 这也是不一致的。在测试攻击动画时,当我击中粘液敌人时,如果批处理文件不关闭,我几乎无法杀死粘液。但是,我尝试这样做的时候,批处理文件会自动终止 这就是ht、tm、hm、bm等的含义。事物的含义是: REM Sets box type. set ht=Í set hm=Í set hb=Í set vl=º set vm=º set vr=º set tl=É

我正在开发一款RPG风格的批量游戏,但我一直发现
goto在这个时候出人意料。
我已经检查了我的代码好几个小时了,仍然不知道它为什么要这样做

这也是不一致的。在测试
攻击
动画时,当我击中
粘液
敌人时,如果批处理文件不关闭,我几乎无法杀死
粘液
。但是,我尝试这样做的时候,批处理文件会自动终止

这就是
ht
tm
hm
bm
等的含义。事物的含义是:

REM Sets box type.
set ht=Í
set hm=Í
set hb=Í
set vl=º
set vm=º
set vr=º
set tl=É
set tm=Ë
set tm2=Ë
set tr=»
set tr2=»
set ml2=Ì
set ml=Ì
set mm=Î
set mm2=Î
set mr2=¹
set mr=¹
set bl=È
set bm=Ê
set bm2=Ê
set br=¼
这是代码的“主体”。玩家将花费大部分时间的地方:

:battle
call :movement %movement%
set itemvar=0
set sx=1
set sx1=%icon%
set zz0=battle
set zz=battle2
set zz1=updo
set zz2=%zz%
set zz3=exit
set zz4=battlese
set zz5=batatk1
set max=4
set itemnum=0
set /a phpmaxh=%phpmax%/2

:battle2
set itemmenu=no
set itemmenu2=no
set battlemenu=no
set fight=no
set item=no
set menu=yes
if %pstatusch% == good (goto worncheck
) else (goto battle21)

:worncheck
if %php% leq %phpmaxh% (set pstatus=Worn Down       
    set pstatusch=worn)

:battle21
if %errorlevel% == 1 (set wcon=Û) else (set wcon= )
if %errorlevel% == 2 (set acon1=ß
    set acon2=Ü) else (set acon1= 
    set acon2= )
if %errorlevel% == 3 (set scon=Û) else (set scon= )
if %errorlevel% == 4 (set dcon1=Ü
    set dcon2=ß) else (set dcon1= 
    set dcon2= )
if %errorlevel% == 0 (set wcon=Ü
set scon=ß) else if %errorlevel% gtr 4 (set wcon=Ü
    set scon=ß)
if %sx% == 1 (set detail= Swing your weapon at 'em. )
if %sx% == 2 (set detail=  Cast a spell their way.  )
if %sx% == 3 (set detail=   Block and regain SPD.   )
if %sx% == 4 (set detail=    Use an item or two.    )
if %php% lss 10 (set phpsp= ) else (set phpsp=)
if %pmp% lss 10 (set pmpsp= ) else (set pmpsp=)
if %phpmax% lss 10 (set phpmaxsp= ) else (set phpmaxsp=)
if %pmpmax% lss 10 (set pmpmaxsp= ) else (set pmpmaxsp=)
if %patk% lss 10 (set patksp= ) else (set patksp=)
if %pdef% lss 10 (set pdefsp= ) else (set pdefsp=)
if %pint% lss 10 (set pintsp= ) else (set pintsp=)
if %pspd% lss 10 (set pspdsp= ) else (set pspdsp=)
if %pdefmax% lss 10 (set pdefmaxsp= ) else (set pdefmaxsp=)
if %pintmax% lss 10 (set pintmaxsp= ) else (set pintmaxsp=)
if %pspdmax% lss 10 (set pspdmaxsp= ) else (set pspdmaxsp=)
if %pshdrb% lss 10 (set shdrbsp= ) else (set shdrbsp=)
if %pardrb% lss 10 (set ardrbsp= ) else (set ardrbsp=)
if %pbtdrb% lss 10 (set btdrbsp= ) else (set btdrbsp=)
if %pexp% lss 10 (set pexpsp= ) else (set pexpsp=)
if %plvl% lss 10 (set plvlsp= ) else (set plvlsp=)

:battle3
if %menu% == yes (mode con: cols=65 lines=19
) else if %fight% == yes (mode con: cols=65 lines=17
) else (mode con: cols=65 lines=24)
if %menu% == yes (call :normal_menu menu1,menu2,menu3,menu4,menu5,menu6
) else if %itemmenu% == yes (call :normal_menu2 menu1,menu2,menu3,menu4,menu5,menu6
) else if %battlemenu% == yes (call :normal_menu3 menu1,menu2,menu3,menu4,menu5,menu6)
cls
echo.
echo.
echo   %tl%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%tr%      %enemy1%       %menu1%
echo   %vl% %ename%%enamesp% %vr%      %enemy2%       %menu2%
echo   %ml%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%mr%      %enemy3%       %menu3%
echo   %vl% HP %ehpbar% %vr%      %enemy4%       %menu4%
echo   %bl%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%br%      %enemy5%        %menu5%
echo                          %enemy6%        %menu6%
echo.
if %itemmenu2% == yes (goto %zz5%
) else if %fight% == yes (goto %zz5%)
echo   %tl%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%tm%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%tr%                     %tl%%ht%%ht%%ht%%ht%%tm%%ht%%ht%%ht%%ht%%tr%
echo   %vl% Status %vm% %pstatus% %vr%                     %vl%Curr%vm%Max %vr%
echo   %ml%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%mm%%hm%%hm%%hm%%hm%%tm2%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%bm2%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%tm2%%hm%%hm%%hm%%hm%%hm%%mm%%hm%%hm%%hm%%hm%%mm%%hm%%hm%%hm%%hm%%mr%
echo   %vl% Shield %vm% %shdrbsp%%pshdrb% %vm% %detail% %vm% HP  %vm% %phpsp%%php% %vm% %phpmaxsp%%phpmax% %vr%
echo   %vl% Armor  %vm% %ardrbsp%%pardrb% %ml2%%hm%%hm%%hm%%hm%%hm%%tm2%%hm%%hm%%hm%%hm%%tm2%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%tm2%%hm%%hm%%hm%%hm%%hm%%tm2%%hm%%hm%%hm%%hm%%mr2% MP  %vm% %pmpsp%%pmp% %vm% %pmpmaxsp%%pmpmax% %vr%
echo   %vl% Boots  %vm% %btdrbsp%%pbtdrb% %vm% LVL %vm% %plvlsp%%plvl% %vm% %acon2% %wcon% %dcon1% %vm% ATK %vm% %patksp%%patk% %vm% DEF %vm% %pdefsp%%pdef% %vm% %pdefmaxsp%%pdefmax% %vr%
echo   %vl%        %vm%    %vm% EXP %vm% %pexpsp%%pexp% %vm% %acon1% %scon% %dcon2% %vm% INT %vm% %pintsp%%pint% %vm% SPD %vm% %pspdsp%%pspd% %vm% %pspdmaxsp%%pspdmax% %vr%
echo   %bl%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%bm%%hb%%hb%%hb%%hb%%bm%%hb%%hb%%hb%%hb%%hb%%bm%%hb%%hb%%hb%%hb%%bm%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%bm%%hb%%hb%%hb%%hb%%hb%%bm%%hb%%hb%%hb%%hb%%bm%%hb%%hb%%hb%%hb%%hb%%bm%%hb%%hb%%hb%%hb%%bm%%hb%%hb%%hb%%hb%%br%
goto wasdqe /nul
这就是问题所在。如果%sx%==4(设置菜单…工作正常,则说明
else的部分,只有
如果%sx%==1(转到%zz5%)
似乎有问题。我想指出,将
%zz5%
切换到
batatk1
并不能解决任何问题

:battlese
if %sx% == 1 (goto %zz5%
) else if %sx% == 4 (set menu=no
    set item=yes
    goto itemselect)
此外,以下是batatk1的代码:

:batatk1
set extradamageatk=+0
set extradamageint=+0
set weaponatk=yes
if %wpequip1% == yes (set x6=%wpequip1%
    set x7=%inven1sp%
    set x8=%inven1%
    set x9=%inname1%
    set x10=%wint1%
    set x11=%watk1%
    set x12=1
    set x13=%wdrb1%
    set x14=%wdrb1%
) else if %wpequip2% == yes (set x6=%wpequip2%
    set x7=%inven2sp%
    set x8=%inven2%
    set x9=%inname2%
    set x10=%wint2%
    set x11=%watk2%
    set x12=2
    set x13=%wdrb2%
    set x14=wdrb2
) else if %wpequip3% == yes (set x6=%wpequip3%
    set x7=%inven3sp%
    set x8=%inven3%
    set x9=%inname3%
    set x10=%wint3%
    set x11=%watk3%
    set x12=3
    set x13=%wdrb3%
    set x14=wdrb3
) else if %wpequip4% == yes (set x6=%wpequip4%
    set x7=%inven4sp%
    set x8=%inven4%
    set x9=%inname4%
    set x10=%wint4%
    set x11=%watk4%
    set x12=4
    set x13=%wdrb4%
    set x14=wdrb4
) else if %wpequip5% == yes (set x6=%wpequip5%
    set x7=%inven5sp%
    set x8=%inven5%
    set x9=%inname5%
    set x10=%wint5%
    set x11=%watk5%
    set x12=5
    set x13=%wdrb5%
    set x14=wdrb5
) else if %wpequip6% == yes (set x6=%wpequip6%
    set x7=%inven6sp%
    set x8=%inven6%
    set x9=%inname6%
    set x10=%wint6%
    set x11=%watk6%
    set x12=6
    set x13=%wdrb6%
    set x14=wdrb6
) else if %wpequip7% == yes (set x6=%wpequip7%
    set x7=%inven7sp%
    set x8=%inven7%
    set x9=%inname7%
    set x10=%wint7%
    set x11=%watk7%
    set x12=7
    set x13=%wdrb7%
    set x14=wdrb7
) else if %wpequip8% == yes (set x6=%wpequip8%
    set x7=%inven8sp%
    set x8=%inven8%
    set x9=%inname8%
    set x10=%wint8%
    set x11=%watk8%
    set x12=8
    set x13=%wdrb8%
    set x14=wdrb8
) else if %wpequip9% == yes (set x6=%wpequip9%
    set x7=%inven9sp%
    set x8=%inven9%
    set x9=%inname9%
    set x10=%wint9%
    set x11=%watk9%
    set x12=9
    set x13=%wdrb9%
    set x14=wdrb9
) else if %wpequip10% == yes (set x6=%wpequip10%
    set x7=%inven10sp%
    set x8=%inven10%
    set x9=%inname10%
    set x10=%wint10%
    set x11=%watk10%
    set x12=10
    set x13=%wdrb10%
    set x14=wdrb10
) else if %wpequip11% == yes (set x6=%wpequip11%
    set x7=%inven11sp%
    set x8=%inven11%
    set x9=%inname11%
    set x10=%wint11%
    set x11=%watk11%
    set x12=11
    set x13=%wdrb11%
    set x14=wdrb11
) else if %wpequip12% == yes (set x6=%wpequip12%
    set x7=%inven12sp%
    set x8=%inven12%
    set x9=%inname12%
    set x10=%wint12%
    set x11=%watk12%
    set x12=12
    set x13=%wdrb12%
    set x14=wdrb12
) else if %wpequip13% == yes (set x6=%wpequip13%
    set x7=%inven13sp%
    set x8=%inven13%
    set x9=%inname13%
    set x10=%wint13%
    set x11=%watk13%
    set x12=13
    set x13=%wdrb13%
    set x14=wdrb13
) else if %wpequip14% == yes (set x6=%wpequip14%
    set x7=%inven14sp%
    set x8=%inven14%
    set x9=%inname14%
    set x10=%wint14%
    set x11=%watk14%
    set x12=14
    set x13=%wdrb14%
    set x14=wdrb14
) else if %wpequip15% == yes (set x6=%wpequip15%
    set x7=%inven15sp%
    set x8=%inven15%
    set x9=%inname15%
    set x10=%wint15%
    set x11=%watk15%
    set x12=15
    set x13=%wdrb15%
    set x14=wdrb15
) else (set weaponatk=no)
set fn=0
set crit=1

:batatk2
set /a fn=%fn%+1
set /a rd%fn%=%random%/5500
if %fn% neq 2 goto batatk2
set fn=0
if %eability% == jelly (set extradamageatk=/2)
set /a crit=%rd1%-%rd2%
if %crit% lss 0 (set crit=+0) else (set crit=+%crit%)
if %rd1% == %rd2% goto rdcheck
if %pability% == weakspot (goto pweakspot)
if %equipatk% == physical (goto batatkph
) else if %equipatk% == mystic (goto batatkmy
) else if %equipatk% == both (goto batatkboth)
goto error

:rdcheck
if %rd1% == 0 (set /a miss=%miss%+1
) else if %rd1% == 5 (set crit=*2)
if %miss% == 2 goto pmiss
if %pability% == weakspot (goto pweakspot)
if %equipatk% == physical (goto batatkph
) else if %equipatk% == mystic (goto batatkmy
) else if %equipatk% == both (goto batatkboth)
goto error

:pweakspot
if %eability% == jelly (goto batatkmy
) else if %emp% gtr %ehp% (goto batatkph
) else if %ehp% gtr %emp% (goto batatkmy
)
goto error

:batatk3
set /a fn=%fn%+1
set /a rd%fn%=%random%/5500
if %fn% neq 2 goto batatk3
if %edamage% gtr 9 (set edamagesp=) else (set edamagesp= )
set fn=0
if %crit% == *2 (set rd1=0
    set rd2=0)
if %rd1% == %rd2% (goto weapondamage)

:batatk4
set /a fn=%fn%+1
if %fn% == 2 (set enemy1=      ÜßÜ    Ü  
    set enemy2=    ÜÛ   ÛÜ ßÜß
    set enemy3=  ÜÛ       ÛÜ  
    set enemy4=ÞÛ  ÛÜ ÜÛ    ÛÝ
    set enemy5=ÞÛ   ÜÜÜ     ÛÝ
    set enemy6=  ßßÜÜÜÜÜÜÜßß   )
if %fn% == 3 (set enemy1=       ÜßÜ    Ü 
    set enemy2=     ÜÛ   ÛÜ ßÜß
    set enemy3=   ÜÛ       ÛÜ  
    set enemy4= ÞÛ  ÛÜ ÜÛ    ÛÝ
    set enemy5= ÞÛ   ÜÜÜ     ÛÝ
    set enemy6=   ßßÜÜÜÜÜÜÜßß  )
if %fn% == 4 (set enemy1=      ÜßÜ    Ü  
    set enemy2=    ÜÛ   ÛÜ ßÜß
    set enemy3=  ÜÛ       ÛÜ  
    set enemy4=ÞÛ  ÛÜ ÜÛ    ÛÝ
    set enemy5=ÞÛ   ÜÜÜ     ÛÝ
    set enemy6=  ßßÜÜÜÜÜÜÜßß   )
if %fn% == 5 (set enemy1=      ÜßÜ       
    set enemy2=    ÜÛ   ÛÜ    
    set enemy3=  ÜÛ       ÛÜ  
    set enemy4=ÞÛ   Ûß ßÛ   ÛÝ
    set enemy5=ÞÛ    ÜÜÜ    ÛÝ
    set enemy6=  ßßÜÜÜÜÜÜÜßß   )
cls
echo.
echo.
echo   %tl%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%tr%      %enemy1%       %menu1%
echo   %vl% %ename%%enamesp% %vr%      %enemy2%       %menu2%
echo   %ml%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%hm%%mr%      %enemy3%       %menu3%
echo   %vl% HP %ehpbar% %vr%      %enemy4%       %menu4%
echo   %bl%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%br%      %enemy5%        %menu5%
echo                          %enemy6%        %menu6%
echo     %tl%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%ht%%tr%
if %weaponatk% == yes (echo     %vl%%enamesp% You swung your %x8% at the %ename%!   %x7%%vr%
) else if %weaponatk% == no (echo     %vl%               You punched the %ename%! %enamesp%          %vr%)
echo     %vl%               The enemy took %edamage% damage! %edamagesp%               %vr%
echo     %bl%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%hb%%br%
if %fn% == 2 goto batatk6

:batatk5
if %fn% gtr 5 (set /a fn=%fn%+1)
if %fn% lss 6 (
    timeout /t 0 >nul
) else (
    timeout /t -1 >nul)
if %fn% lss 6 (goto batatk4)
if %ehp% leq 0 (set ehp=0
    goto battle_win)
goto %zz0%

:batatk6
if %ehp% leq 0 (set ehpbar=°°°°°°°°°°
) else if %ehp% == 1 (set ehpbar=²°°°°°°°°°
) else if %ehp% == 2 (set ehpbar=Û°°°°°°°°°
) else if %ehp% == 3 (set ehpbar=Û²°°°°°°°°
) else if %ehp% == 4 (set ehpbar=ÛÛ°°°°°°°°
) else if %ehp% == 5 (set ehpbar=ÛÛ²°°°°°°°
) else if %ehp% == 6 (set ehpbar=ÛÛÛ°°°°°°°
) else if %ehp% == 7 (set ehpbar=ÛÛÛ²°°°°°°
) else if %ehp% == 8 (set ehpbar=ÛÛÛÛ°°°°°°
) else if %ehp% == 9 (set ehpbar=ÛÛÛÛ²°°°°°
) else if %ehp% == 10 (set ehpbar=ÛÛÛÛÛ°°°°°
) else if %ehp% == 11 (set ehpbar=ÛÛÛÛÛ²°°°°
) else if %ehp% == 12 (set ehpbar=ÛÛÛÛÛÛ°°°°
) else if %ehp% == 13 (set ehpbar=ÛÛÛÛÛÛ²°°°
) else if %ehp% == 14 (set ehpbar=ÛÛÛÛÛÛÛ°°°
) else if %ehp% == 15 (set ehpbar=ÛÛÛÛÛÛÛ²°°
) else if %ehp% == 16 (set ehpbar=ÛÛÛÛÛÛÛÛ°°
) else if %ehp% == 17 (set ehpbar=ÛÛÛÛÛÛÛÛ²°
) else if %ehp% == 18 (set ehpbar=ÛÛÛÛÛÛÛÛÛ°
) else if %ehp% == 19 (set ehpbar=ÛÛÛÛÛÛÛÛÛ²
) else if %ehp% == 20 (set ehpbar=ÛÛÛÛÛÛÛÛÛÛ)
goto batatk4

:weapondamage
if %weapondamage% == no goto batatk4
if %rd1% == 0 (set /a %x14%=%x13%-2) else (set /a %x14%=%x13%-1)
if %rd1% == 0 (set /a x13=%x13%-2) else (set /a x13=%x13%-1)
if %x13% leq 0 (set item%x12%=none
    set inven%x12%=Scraps         
    set inname%x12%=none
    set wpequip%x12%=no
    set indesc%x12%=%x9%
    set x9=none
    set equipatk=physical)
if %x9% == woodsword (set indesc%x12%=A toy children play with. ATK:3 DRB:%x13%                  
) else if %x9% == woodstaff (set indesc%x12%=A type of staff used on hiking trips. INT:3 DRB:%x13%      
) else if %x9% == wooddagger (set indesc%x12%=Artistic carving of a beautiful dagger. INT/ATK:2 DRB:%x13%
) else if %x9% == none (set indesc%x12%=Scraps left behind from shattered equipment.           )
if %x13% leq 0 (set /a patk=%patk%-%x11%)
if %x13% leq 0 (set /a pint=%pint%-%x10%)
goto batatk4

:batatkph
set /a edamage=((%patk%%crit%)%extradamageatk%)-%edef%
if %edamage% leq 0 (set edamage=1)
set /a ehp=%ehp%-%edamage%
goto batatk3

:batatkmy
set /a edamage=((%pint%%crit%)%extradamageint%)-%edef%
if %edamage% leq 0 (set edamage=1)
set /a ehp=%ehp%-%edamage%
goto batatk3
唯一导致我的游戏无法正常运行的问题是
如果%sx%==1(转到%zz5%)
,我不知道该怎么办。我试着把我的代码复制粘贴到一个新程序上。我试过把它保存在记事本上,我试过记事本++,我甚至把它从循环开关的数量切换到现在它正在做的事情,但它仍然不工作。 我甚至尝试过清理一下我的代码,但这并不能解决任何问题。 直到我添加了
Smoosh
(粘液敌人的名称)动画,这个问题才开始出现。在那之前,根本没有任何问题。黏液动画可以在
:batatk4
:batatk6

感谢您花时间阅读本文并浏览大量代码。如果有人能找出我做错了什么,我将不胜感激。

让我与您分享开发批处理文件时最隐秘的问题之一。在执行批处理文件时,shell通过记住要执行的下一个命令的字节偏移量来记住停止的位置,并且每次关闭并重新打开该文件。这意味着,如果在批处理文件运行时更改该批处理文件,则会发生灾难,因为保存的字节指针可能指向一行的中间

我不能重复你的问题。注意,如果变量可能为空,那么如果%sx%==1,则不能说
;这会导致语法错误。如果“%sx%”==“1”
或如果x%sx%==x1
,则必须说类似于
的话

而且,恕我直言,当我看这段代码时,我所能想到的就是“好上帝”

编辑

这里有一个你可以尝试的例子,说明这个语法是有效的

set xx=XX

if "%xx%" == "1" (goto one
) else (goto two
)
echo What?

:one
echo One
goto :eof

:two
echo Two

我不相信这个问题实际上与编码有关。
我将代码复制到一个新的文本文件中,发送到我的电子邮件中,重置我的计算机,将文件保存回我的计算机,现在它似乎工作正常。感谢那些试图为我提供解决方案的人。

由于您似乎已经自行解决了您的问题,以下只是建议对您在问题中使用的代码进行语法更改。您应该使用它们作为最佳实践:

REM设置框类型。
设置“ht=Í”
设置“hm=Í”
设置“hb=Í”
设置“vl=º”
设置“vm=º”
设置“vr=º”
设置“tl=É”
设置“tm=Ë”
设置“tm2=Ë”
设置“tr=»”
设置“tr2=»”
设置“ml2=Ì”
设置“ml=Ì”
设置“毫米=Δ
设置“mm2=Δ
设置“mr2=1”
设置“mr=1”
设置“bl=È”
设置“bm=Ê”
设置“bm2=Ê”
设置“br=¼”
:战斗
呼叫:移动%movement%
设置“itemvar=0”
设置“sx=1”
设置“sx1=%icon%”
设置“zz0=战斗”
设置“zz=2”
设置“zz1=updo”
设置“zz2=%zz%”
设置“zz3=退出”
设置“zz4=SE”
设置“zz5=batatk1”
设置“最大值=4”
设置“itemnum=0”
设置/a phpmaxh=phpmax/2
:战斗2
设置“itemmenu=no”
设置“itemmenu2=否”
设置“菜单=否”
设置“战斗=否”
设置“项目=否”
设置“菜单=是”
如果“%pstatuch%”==“良好”(转到worncheck
)否则就去战斗21
:worncheck
如果%php%leq%phpmaxh%(设置“pstatus=磨损”
设置“PStatuch=磨损”)
:21
如果%errorlevel%equ 1(设置为“wcon=Û”),则设置为“wcon=”
如果%errorlevel%equ 2(设置为“acon1=ß”
设置“acon2=Ü”)否则(设置“acon1=”
设置“acon2=”)
如果%errorlevel%equ 3(设置为“scon=Û”),则设置为“scon=”
如果%errorlevel%equ 4(设置“dcon1=Ü”
设置“dcon2=ß”)否则(设置“dcon1=”
设置“dcon2=”)
如果%errorlevel%equ为0(设置“wcon=Ü”
设置“scon=ß”,否则如果%errorlevel%gtr 4(设置“wcon=Ü”
设置“scon=ß”)
如果%sx%eq 1设置“细节=向他们挥舞武器。”
如果%sx%eq 2 set“detail=按他们的方式施法。"
如果%sx%eq 3设置“细节=阻止并恢复SPD。"
如果%sx%eq 4 set“detail=使用一两项。"
如果%php%lss 10(设置为“phpsp=”)否则设置为“phpsp=”
如果%pmp%lss 10(设置“pmpsp=”)否则设置“pmpsp=”
如果%phpmax%lss 10(设置为“phpmaxsp=”),则设置为“phpmaxsp=”
如果%pmpmax%lss 10(设置“pmpmaxsp=”)否则设置“pmpmaxsp=”
如果%patk%lss 10(设置“patksp=”)否则设置“patksp=”
如果%pdef%lss 10(设置“pdefsp=”)否则设置“pdefsp=”
如果%pint%lss 10(设置“pintsp=”)否则设置“pintsp=”
如果%pspd%lss 10(设置“pspdsp=”)否则设置“pspdsp=”
如果%pdefmax%lss 10(设置“pdefmaxsp=”)否则设置“pdefmaxsp=”
如果%pintmax%lss 10(设置“pintmax=”),则设置“pintmax=”
如果%pspdmax%lss 10(设置“pspdmaxsp=”)否则设置“pspdmaxsp=”
如果%pshdrb%lss 10(设置为“shdrbsp=”)否则设置为“shdrbsp=”
如果%pardrb%lss 10(设置为“ardrbsp=”),则设置为“ardrbsp=”
如果%pbtdrb%lss 10(设置为“btdrbsp=”)否则设置为“btdrbsp=”
如果%pexp%lss 10(设置“pexpsp=”)否则设置“pexpsp=”
如果%plvl%lss 10(设置“plvlsp=”)否则设置“plvlsp=”
:战斗3
如果“%menu%”==“yes”(模式con:cols=65行=19
)如果“%fight%”为“yes”(模式con:cols=65行=17行),则为else
)其他(模式con:cols=65行=24行)
如果“%menu%”==“yes”(调用:正常菜单menu1、menu2、menu3、menu4、menu5、menu6
)如果“%itemmenu%”为“yes”(调用:normal_menu2 menu1、menu2、menu3、menu4、menu5、menu6
)如果“%battlemenu%”,则为