Batch file “无法检测到批处理文件负数”;如果;命令

Batch file “无法检测到批处理文件负数”;如果;命令,batch-file,Batch File,我在运行Windows7的桌面上开发了一款RPG风格的游戏 我一直在用批处理来制作这个游戏。我一直有负数的问题… 如果你/敌人的生命值为负数,你将变得不可战胜。LSS、LEQ、全球技术法规、GEQ似乎不起作用。 这就是我如何判断你是死了还是怪物死了 If "%phealth%" LSS "0" goto :dead. If "mhealth%" LSS "0" goto :Mdead 如果我使用GTR或GEQ,第一次攻击将杀死怪物,无论我使用

我在运行Windows7的桌面上开发了一款RPG风格的游戏 我一直在用批处理来制作这个游戏。我一直有负数的问题…
如果你/敌人的生命值为负数,你将变得不可战胜。LSS、LEQ、全球技术法规、GEQ似乎不起作用。 这就是我如何判断你是死了还是怪物死了

If "%phealth%" LSS "0" goto :dead.                          
If "mhealth%" LSS "0" goto :Mdead
如果我使用GTR或GEQ,第一次攻击将杀死怪物,无论我使用LSS或leq,它都不会按照我的意图工作。 一切都是随机生成的

Set /a "mhealth=%random% %%mlvl%-1+9
玩家的健康和水平不是随机的,但可以改变 是否有我忽略的解决方案或错误。大多数页面也没有帮助。我需要它,所以如果生命值为负,你/怪物就会死亡


谢谢

如果将操作数括在引号中,则按字母顺序执行比较。使用引号的原因(通常)是为了防止操作数为空,但也可以通过使用
(如果[未]定义…)。对于数值比较,请删除引号。

如果将操作数括在引号中,则按字母顺序执行比较。使用引号的原因(通常)是为了防止操作数为空,但也可以通过使用
(如果[未]定义…)。要进行数字比较,请删除引号。

请正确设置代码格式。并且这些不会在
“%phealth%”和
“0”
中添加引号。如果您碰巧阅读了
If
命令的帮助,您可能已经看到了这一点。您还可以使用上面的数值比较:
如果%ERRORLEVEL%LEQ 1转为正常
。你看到有什么引号吗?你看起来像是在做一个余数计算。使用批处理文件时,需要将百分比字符加倍,
Set/a mhealth=%random%%%%%%%mlvl%-1+9
(不需要在%mlvl%变量中包含百分比字符)。我加入了空格,以帮助您看到组件之间的分隔,保留这些内容不会造成任何伤害。请正确设置代码格式。并且这些不会在
“%phealth%”和
“0”
中添加引号。如果您碰巧阅读了
If
命令的帮助,您可能已经看到了这一点。您还可以使用上面的数值比较:
如果%ERRORLEVEL%LEQ 1转为正常
。你看到有什么引号吗?你看起来像是在做一个余数计算。使用批处理文件时,需要将百分比字符加倍,
Set/a mhealth=%random%%%%%%%mlvl%-1+9
(不需要在%mlvl%变量中包含百分比字符)。我已经加入了一些空格,以帮助您看到组件之间的分隔,留下这些将不会造成任何伤害。