中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-15 19:45
47,813 主题排行 / 349,903 发帖 / 今日 1 篇 / 48,258 会员排行
DOS疑难解答 & 问题讨论 (解答室) » [已解决]4DOS下使用IF判断文件的大小
可打印版本  1,203 / 4
第1楼 Yaoxl 发表于 2009-02-08 07:07
新手上路 发帖 8 积分 19
[已解决]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 ]
第2楼 DOSforever 发表于 2009-02-08 13:07
金牌会员 发帖 2,239 积分 4,639
第3楼 Yaoxl 发表于 2009-02-09 09:45
新手上路 发帖 8 积分 19
哈哈 版主我太爱你了!

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

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

命令解释器换为4dos

判断语句改为

if not %@filesize=256 goto failed

再次感谢!

[ Last edited by Yaoxl on 2009-2-9 at 14:58 ]
第4楼 DOSforever 发表于 2009-02-09 17:12
金牌会员 发帖 2,239 积分 4,639
基本上没什么问题,但这里要注意个约定俗成的表示方法,不然的话会引起混乱。

一般,我们把小写的 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 ]
第5楼 Yaoxl 发表于 2009-02-09 17:33
新手上路 发帖 8 积分 19
再次,感激不尽!
已结帖
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023