【发布时间】:2021-02-26 03:05:09
【问题描述】:
我用批处理脚本制作了一个有趣的游戏,但是在这段代码中我有一个错误消息“/100 出乎意料”我真的不明白为什么?请帮帮我!!
@echo off
mode con cols=110 lines=32
setlocal enabledelayedexpansion
set npctier=0
goto randomnpc
:randomnpc
if %npctier% EQU 0 (
set npctype=Wooden Dummy
set /a npclvl=%random% %% 5+1
set /a npchp=%npclvl% * 100
set /a npcdmg=0
set /a npcdef=(%npchp%*5)/100
set /a npcxp=%npclvl%*100 )
:combatchoice
echo.
echo. You see %npctype% level %npclvl%.
echo.
echo. The %npctype%'s Health: %npchp% HP
echo.
goto main
【问题讨论】:
-
)直接位于/之前的)被视为IF %npctier%...语句的右括号,需要用插入符号 (^) 转义因此:^) -
除此之外,您正在使用 % 扩展来扩展变量,这将使用 If 块执行之前变量所持有的值进行扩展,因此即使在纠正了括号问题之后,您也会得到一个除以0 错误。
标签: windows if-statement batch-file cmd syntax