gpt4 book ai didi

batch-file - 比较 DOS 批处理中的 2 个数字不起作用

转载 作者:行者123 更新时间:2023-12-04 13:43:15 26 4
gpt4 key购买 nike

我是一个老手,是 DOS 批处理编程的新手。我有一个我认为非常简单的批处理脚本,但它不起作用。我寻找了类似的帖子,但没有找到匹配的帖子。

我在 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.

关于batch-file - 比较 DOS 批处理中的 2 个数字不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com