我正在尝试制作一个批处理游戏,但每次我尝试运行它都会得到错误错误的操作数设置是意料之外的,这时代码是这样的:
set /a temp2=(%hp% * %lvl% + %exp% * %exptill% + %wepprice% + %power% * %weppower%)/(%gold% + %pots% * %powergain%)
if not %temp1% equ %temp2% set %temp3%=1
goto home
答案 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)
尝试将括号括在最后一组。你的任何变量都包含符号吗?