询问变量是否等于批量中的另一个变量时出现语法错误

时间:2013-08-30 15:39:54

标签: variables if-statement batch-file syntax equals

这是我的代码:

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.

我运行时遇到语法错误。我做错了什么?

1 个答案:

答案 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.