无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3949|回复: 9
打印 上一主题 下一主题

求助 批处理如何比较两个数值的大小

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-14 20:56:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这几天被这个问题困惑死了,我写的批处理,用来判断分区剩余空间是否大于5g,运行错误,附源代码:
@echo off
set scd=d:
for /f "skip=1 tokens=2 delims= " %%1 in ('wmic logicaldisk where drivetype^=3 get deviceid^,freespace^|find /i "f"') do set sz=%%1
if %sz% gtr 5000000000 set scd=f:
echo %sz%
echo %scd%
if 11286921216 gtr 5000000000 set scd=f:
echo %scd%
pause

运行结果:
11286921216
d:
d:
请按任意键继续. . .

怎么会这样?11286921216明显要比5000000000大啊?我猜想是不是批处理认为它是字符串而不是数值?请问应该怎么解决?请高手帮忙...
2#
 楼主| 发表于 2012-5-14 21:05:53 | 只看该作者
明白了,有人说windows比较不了这么大的数。。。可是如何解决呢
回复

使用道具 举报

3#
 楼主| 发表于 2012-5-15 08:03:46 | 只看该作者
set sz=%sz:~0,-3%
if %sz% gtr 5000000 set scd=f:

好吧。自己解决了。。。 截掉sz后三位字符.
回复

使用道具 举报

4#
 楼主| 发表于 2012-5-18 14:59:15 | 只看该作者
我也考虑过这个问题,截掉后三位的确很不科学,但是想不到更好的办法了,我知道他们的进率是1024,但大家不是在不需要太精确的情况下用1000代替吗,我写这个的目的是判断这个分区剩余空间是否大于5g,用来存放备份文件的,不需要如此精确。。。当然有更好的方法请指教...
回复

使用道具 举报

5#
发表于 2012-5-20 14:59:54 | 只看该作者

标题

原帖由 winlong102 于 2012-5-14 20:56 发表
这几天被这个问题困惑死了,我写的批处理,用来判断分区剩余空间是否大于5g,运行错误,附源代码:
@echo off
set scd=d:
for /f "skip=1 tokens=2 delims= " %%1 in ('wmic logicaldisk where drivetype^=3 ...

   然来就有人问过这问题,还有人讨论怎么算空间,问题是你用得着算么?人家微软以跟你算出来了你硬是不用非要自已算一次!要是人家电脑上没启用wmic呢?  
   defrag -a   怎么截取你要的数据 看楼主For 用得蛮好不应我帮忙贴出来现卐吧
回复

使用道具 举报

6#
发表于 2012-5-20 14:59:55 | 只看该作者

标题

原帖由 winlong102 于 2012-5-14 20:56 发表
这几天被这个问题困惑死了,我写的批处理,用来判断分区剩余空间是否大于5g,运行错误,附源代码:
@echo off
set scd=d:
for /f "skip=1 tokens=2 delims= " %%1 in ('wmic logicaldisk where drivetype^=3 ...

   然来就有人问过这问题,还有人讨论怎么算空间,问题是你用得着算么?人家微软以跟你算出来了你硬是不用非要自已算一次!要是人家电脑上没启用wmic呢?  
   defrag -a   怎么截取你要的数据 看楼主For 用得蛮好不应我帮忙贴出来现卐吧
回复

使用道具 举报

7#
 楼主| 发表于 2012-5-20 18:05:44 | 只看该作者
这是我运行的结果。。。  看来想找个通用的方法不容易啊。难道用dir 再截取?感谢楼上及楼上的楼上的楼上的答复..

C:\>defrag c: -a
Windows 磁盘碎片整理程序
版权所有 (c) 2001 Microsoft Corp. and Executive Software International Inc.

Windows 无法连接到磁盘碎片整理程序引擎。

C:\>
回复

使用道具 举报

8#
发表于 2012-5-20 23:01:27 | 只看该作者
原帖由 winlong102 于 2012-5-20 18:05 发表
这是我运行的结果。。。  看来想找个通用的方法不容易啊。难道用dir 再截取?感谢楼上及楼上的楼上的楼上的答复..
C:\>defrag c: -a
Windows 磁盘碎片整理程序
版权所有 (c) 2001 Microsoft Corp. and Exe ...

牛叉,C 盘查C盘!!  你先跳到D盘再试吧
回复

使用道具 举报

9#
发表于 2012-5-20 23:01:57 | 只看该作者
原帖由 winlong102 于 2012-5-20 18:05 发表
这是我运行的结果。。。  看来想找个通用的方法不容易啊。难道用dir 再截取?感谢楼上及楼上的楼上的楼上的答复..
C:\>defrag c: -a
Windows 磁盘碎片整理程序
版权所有 (c) 2001 Microsoft Corp. and Exe ...

牛叉,C 盘查C盘!!  你先跳到D盘再试吧
回复

使用道具 举报

10#
 楼主| 发表于 2012-5-23 12:43:29 | 只看该作者
话说:c盘可以查c盘的,我另外一电脑:
C:\Documents and Settings\Administrator>defrag c: -a
Windows 磁盘碎片整理程序
版权所有 (c) 2001 Microsoft Corp. and Executive Software International Inc.

分析报告
    总共 30.01 GB,24.07 GB (80%)可用,9% 零碎(18% 文件碎片)

不需要对该卷进行碎片整理。

C:\Documents and Settings\Administrator>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 00:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表