Board logo

标题: [已解决]4DOS下使用IF判断文件的大小 [打印本页]

作者: Yaoxl     时间: 2009-2-8 07:07    标题: [已解决]4DOS下使用IF判断文件的大小

这几天在做一个刷机的批处理 完全是基于DOS运行
其中一个部分是DUMP出一个DUMP.BIN 这个文件正确的大小是256kb 但是DUMP失败也会生成大小为0的同名文件
目前的问题就是需要判断此文件是否为256kb 如果不是 则转到出错
windows下的批处理我倒可以写出来 但是在DOS下不支持FOR的扩展参数 特求指教
要实现的功能如下:
@echo off
for  %%1 in ("dump.bin") do if not "%%~z1" equ "262114" goto failed
echo 成功读取
pause
goto success
:failed
echo 读取失败
pause
..
就是要在DOS下实现上述功能 谢谢大家了

[ Last edited by Yaoxl on 2009-2-9 at 17:34 ]
作者: DOSforever     时间: 2009-2-8 13:07
参考一下这里:

http://www.cn-dos.net/forum/viewthread.php?tid=25967
作者: Yaoxl     时间: 2009-2-9 09:45
哈哈 版主我太爱你了!

让我找到了4dos这个好东东!

目前身边没有电脑 我用手机查看了论坛上所有4dos相关的文章 大概有了解决办法   版主帮我看看有无不妥

命令解释器换为4dos

判断语句改为

if not %@filesize[dump.bin,k]=256 goto failed

再次感谢!

[ Last edited by Yaoxl on 2009-2-9 at 14:58 ]
作者: DOSforever     时间: 2009-2-9 17:12
基本上没什么问题,但这里要注意个约定俗成的表示方法,不然的话会引起混乱。

一般,我们把小写的 b 表示为 bit ,大写的 B 表示 byte ,虽然这不是国际标准,但规范这样的写法可以避免误解,有助于交流。在 4DOS 中 b 和 B 没有区别,但 k K, m M, g G 是有区别的,1k=1000 而 1K=1024,依此类推。如果不是整数倍的话,取得的数是个近似值,为向上取整。因此,按照你这样的写法,你的那个 dump.bin 文件的大小得出的 k 数是不确切的,最好是指定明确的字节数,如 262144 ,k 不要。当然,如果你每个 dump.bin 文件的大小都完全相同,并且明确知道 k / K 字节数的话也可以使用。

[ Last edited by DOSforever on 2009-2-9 at 17:14 ]
作者: Yaoxl     时间: 2009-2-9 17:33
再次,感激不尽!
已结帖