中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-15 18:58
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [已解决]4DOS下使用IF判断文件的大小 查看 1,202 回复 4
楼 主 [已解决]4DOS下使用IF判断文件的大小 发表于 2009-02-08 07:07 ·  中国 四川 成都 电信
新手上路
积分 19
发帖 8
注册 2009-02-04 00:44
17年会员
UID 137975
性别 男
状态 离线
这几天在做一个刷机的批处理 完全是基于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 发表于 2009-02-08 13:07 ·  中国 上海 杨浦区 电信
金牌会员
★★★★
积分 4,639
发帖 2,239
注册 2005-01-30 00:00
21年会员
UID 35785
性别 男
状态 离线
3 发表于 2009-02-09 09:45 ·  中国 广东 潮州 电信
新手上路
积分 19
发帖 8
注册 2009-02-04 00:44
17年会员
UID 137975
性别 男
状态 离线
哈哈 版主我太爱你了!

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

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

命令解释器换为4dos

判断语句改为

if not %@filesize=256 goto failed

再次感谢!

[ Last edited by Yaoxl on 2009-2-9 at 14:58 ]
4 发表于 2009-02-09 17:12 ·  中国 上海 杨浦区 电信
金牌会员
★★★★
积分 4,639
发帖 2,239
注册 2005-01-30 00:00
21年会员
UID 35785
性别 男
状态 离线
基本上没什么问题,但这里要注意个约定俗成的表示方法,不然的话会引起混乱。

一般,我们把小写的 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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
Yaoxl +1 2009-02-09 17:55
5 发表于 2009-02-09 17:33 ·  中国 广东 潮州 电信
新手上路
积分 19
发帖 8
注册 2009-02-04 00:44
17年会员
UID 137975
性别 男
状态 离线
再次,感激不尽!
已结帖
论坛跳转: