Board logo

标题: [讨论]使用“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
楼上的正解!