中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [讨论]使用“Dready 测试磁盘是否准备好”这个程序的疑团!
作者:
标题: [讨论]使用“Dready 测试磁盘是否准备好”这个程序的疑团! 上一主题 | 下一主题
insert
中级用户




积分 282
发帖 52
注册 2004-9-29
状态 离线
『楼 主』:  [讨论]使用“Dready 测试磁盘是否准备好”这个程序的疑团!

      怀疑??Dready这个用于测试磁盘是否准备好并返回错误的程序,有实际作用吗??当磁盘已分好区但未格式化的情况下,用Dready测试磁盘,那它返回的错误码就是 2 ,那么实际用下面的语句就不会转移到:end了,而是应该转移到:exit,但批处理偏偏就是转移到了:end
Dready C:     (C:盘未格式化)
if errorlevel 0 goto end
---中间这段批处理省略掉了---
goto exit
:end
:exit
请各位帮小弟解释一下迷团,谢谢!!!![em06]

[此贴子已经被作者于2004-11-8 22:36:17编辑过]




2004-11-8 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
doslr
初级用户




积分 168
发帖 27
注册 2004-11-3
状态 离线
『第 2 楼』:  

呵呵,把你的批处理全部贴出来看看

2004-11-8 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Tamm
中级用户




积分 397
发帖 64
注册 2004-4-18
状态 离线
『第 3 楼』:  

To insert :
你的问题不在 Dready。而是你测试 errorlevel 的方法不正确。
注意 DOS 中 “if errorlevel xxx goto ...” 的定义是这样的:当返回的 errorlevel 大于或等于 xxx 时判断为真。
你的批处理中 “if errorlevel 0...” 这样的测试方法是错误的,这个相当于在说:“如果 errorlevel 大于或等于 0 则跳转... ”,所以,它总是跳转到 :end
正确的测试 errorlevel 的方法应该是从大到小,如你这个例子,应该这么做:
(注:Dready 返回 errorlevel 2 表示:drive not ready or no read access)
Dready C:     (C:盘未格式化)
if errorlevel 2 goto exit
---中间这段批处理省略掉了---
goto end

:end


:exit




2004-11-10 00:00
查看资料  发送邮件  发短消息 网志  OICQ (136587)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 4 楼』:  

楼上的正解!



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2004-11-10 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: