这是我的代码:
if %magic%==%weakness% set /a damage=%random%*3/32767+12
if %magic==%resistance% set /a damage=%random%*3/32767+5
echo Your attack does %damage% damage.
我运行时遇到语法错误。我做错了什么?
答案 0 :(得分:1)
您应该始终在变量周围使用引号或使用延迟扩展,以避免在一个或两个变量为空时出现问题。
顺便说一下。在第二行,你错过了百分之一
if "%magic%"=="%weakness%" set /a damage=%random%*3/32767+12
if "%magic%"=="%resistance%" set /a damage=%random%*3/32767+5
echo Your attack does %damage% damage.
或延迟扩张
setlocal EnableDelayedExpansion
if !magic!==!weakness! set /a damage=%random%*3/32767+12
if !magic!==!resistance! set /a damage=%random%*3/32767+5
echo Your attack does !damage! damage.