我的批处理文件中有以下代码:
if %bakfilesize% geq %freespacet% echo baksize is larger
if %bakfilesize% leq %freespacet% echo baksize is smaller
当我运行它时,我在屏幕上看到以下输出:
if 399502220288 GEQ 463777075200 echo baksize is larger
baksize is larger
if 399502220288 LEQ 463777075200 echo baksize is smaller
baksize is smaller
谁能告诉我这是怎么回事?我尝试过使用数字1和2的简单版本,Windows可以确认1确实小于2,那么为什么在这种情况下失败呢?
我只需要 geq 语句即可工作。另一个是为了证明奇怪之处。
好的,在这种情况下,问题就很简单了。尝试一下,就像在您的示例中一样:
set /a bakfilesize=399502220288
你会得到这个错误:
无效号码。数字的精度限制为 32 位。
因此,这意味着您正在处理的数字太大,DOS 将无法正确比较它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)