加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

batch-file – 在DOS批处理不工作中比较2个数字

发布时间:2020-12-14 01:44:02 所属栏目:Windows 来源:网络整理
导读:我是一个老前辈,是DOS Batch编程的新手.我认为这是一个非常简单的批处理脚本,但是没有用.我寻找类似的帖子,但找不到匹配的帖子. 我在XP上运行以下脚本.我的目标是在继续进行之前检查可用磁盘空间,但是我遇到了比较2个数字的问题,所以下面的脚本只包含那个逻
我是一个老前辈,是DOS Batch编程的新手.我认为这是一个非常简单的批处理脚本,但是没有用.我寻找类似的帖子,但找不到匹配的帖子.

我在XP上运行以下脚本.我的目标是在继续进行之前检查可用磁盘空间,但是我遇到了比较2个数字的问题,所以下面的脚本只包含那个逻辑.我有硬编码的数字来显示问题,这是…比较(如果x gtr y)似乎不起作用,因此分支逻辑转到了错误的位置.不管怎样,或者我在IF声明的其他地方弄乱了. (有些echo语句是不必要的 – 它们用于调试 – 但我暂时将它们保留下来.)

任何对我出错的启示都会非常感激.

谢谢…

@echo off

set Free=217522712576
set Need=20000000000

echo Free=%Free%
echo Need=%Need%

echo on
IF %Free% GTR %Need% (GOTO Sufficient_Space) ELSE GOTO Insufficient_Space
@echo off

:Insufficient_Space
@ECHO INSUFFICIENT SPACE
GOTO DONE

:Sufficient_Space
@ECHO SUFFICIENT SPACE

:DONE
这些数字会溢出一个32位整数,因此猜测你的32位版本的Windows,这就是它失败的原因.
C:&;set /a test=1+2
3

C:&;set /a test=1+217522712576
Invalid number.  Numbers are limited to 32-bits of precision.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读