标题: [讨论]使用“Dready 测试磁盘是否准备好”这个程序的疑团!
[打印本页]
作者: insert
时间: 2004-11-8 00:00
标题: [讨论]使用“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编辑过]
作者: doslr
时间: 2004-11-8 00:00
呵呵,把你的批处理全部贴出来看看
作者: Tamm
时间: 2004-11-10 00:00
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
作者: Climbing
时间: 2004-11-10 00:00
楼上的正解!