缺少操作数错误

时间:2013-10-08 23:47:41

标签: batch-file operand

我正在尝试制作一个批处理游戏,但每次我尝试运行它都会得到错误错误的操作数设置是意料之外的,这时代码是这样的:

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

2 个答案:

答案 0 :(得分: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及更高版本。

答案 1 :(得分:1)

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