1

我正在尝试制作一个批处理游戏,但每次我尝试运行它时都会收到错误 Missing operand set was unexpected at this time 这是代码:

set /a temp2=(%hp% * %lvl% + %exp% * %exptill% + %wepprice% + %power% * %weppower%)/(%gold% + %pots% * %powergain%)
if not %temp1% equ %temp2% set %temp3%=1
goto home                
4

2 回答 2

2

由于这个问题在技术上仍然没有答案:把“%”排除在等式之外。您不需要它们,在这种情况下,它们弊大于利;如果未定义,它们会导致相关变量扩展为空。如果只使用变量名,如果未定义,它们将被扩展为“0”。

set /a temp2=(hp*lvl+exp*exptill+wepprice+power*weppower)/(gold+pots*powergain)

当您检查 temp1 和 temp2 的值时,请确保它们是通过在检查之前添加 0 来定义的(这会处理算术失败并出现“除以零”错误的情况):

set /a temp1+=0&set /a temp2+=0

您可能还想确保在最后一行也定义了 temp3:

if defined temp3 if not %temp1% equ %temp2% set "%temp3%=1"

这种算术风格适用于 Windows 2000 及更高版本。

于 2013-12-18T18:23:18.853 回答
1

尝试在最后一组周围加上括号。你的任何变量都包含符号吗?

于 2013-10-09T01:12:22.720 回答