无忧启动论坛

标题: 求助 批处理如何比较两个数值的大小 [打印本页]

作者: 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 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大啊?我猜想是不是批处理认为它是字符串而不是数值?请问应该怎么解决?请高手帮忙...
作者: winlong102    时间: 2012-5-14 21:05
明白了,有人说windows比较不了这么大的数。。。可是如何解决呢
作者: winlong102    时间: 2012-5-15 08:03
set sz=%sz:~0,-3%
if %sz% gtr 5000000 set scd=f:

好吧。自己解决了。。。 截掉sz后三位字符.
作者: winlong102    时间: 2012-5-18 14:59
我也考虑过这个问题,截掉后三位的确很不科学,但是想不到更好的办法了,我知道他们的进率是1024,但大家不是在不需要太精确的情况下用1000代替吗,我写这个的目的是判断这个分区剩余空间是否大于5g,用来存放备份文件的,不需要如此精确。。。当然有更好的方法请指教...
作者: x9tian    时间: 2012-5-20 14:59
标题: 标题
原帖由 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 用得蛮好不应我帮忙贴出来现卐吧
作者: x9tian    时间: 2012-5-20 14:59
标题: 标题
原帖由 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 用得蛮好不应我帮忙贴出来现卐吧
作者: winlong102    时间: 2012-5-20 18:05
这是我运行的结果。。。  看来想找个通用的方法不容易啊。难道用dir 再截取?感谢楼上及楼上的楼上的楼上的答复..

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

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

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

牛叉,C 盘查C盘!!  你先跳到D盘再试吧
作者: x9tian    时间: 2012-5-20 23:01
原帖由 winlong102 于 2012-5-20 18:05 发表
这是我运行的结果。。。  看来想找个通用的方法不容易啊。难道用dir 再截取?感谢楼上及楼上的楼上的楼上的答复..
C:\>defrag c: -a
Windows 磁盘碎片整理程序
版权所有 (c) 2001 Microsoft Corp. and Exe ...

牛叉,C 盘查C盘!!  你先跳到D盘再试吧
作者: winlong102    时间: 2012-5-23 12:43
话说: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>




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3