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

前端之家收集整理的这篇文章主要介绍了batch-file – 在DOS批处理不工作中比较2个数字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是一个老前辈,是DOS Batch编程的新手.我认为这是一个非常简单的批处理脚本,但是没有用.我寻找类似的帖子,但找不到匹配的帖子.

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

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

谢谢…

  1. @echo off
  2.  
  3. set Free=217522712576
  4. set Need=20000000000
  5.  
  6. echo Free=%Free%
  7. echo Need=%Need%
  8.  
  9. echo on
  10. IF %Free% GTR %Need% (GOTO Sufficient_Space) ELSE GOTO Insufficient_Space
  11. @echo off
  12.  
  13. :Insufficient_Space
  14. @ECHO INSUFFICIENT SPACE
  15. GOTO DONE
  16.  
  17. :Sufficient_Space
  18. @ECHO SUFFICIENT SPACE
  19.  
  20. :DONE
这些数字会溢出一个32位整数,因此猜测你的32位版本的Windows,这就是它失败的原因.
  1. C:\>set /a test=1+2
  2. 3
  3.  
  4. C:\>set /a test=1+217522712576
  5. Invalid number. Numbers are limited to 32-bits of precision.

猜你在找的Windows相关文章