无忧启动论坛

标题: 对扩展光驱的一点疑惑 [打印本页]

作者: yjfok961    时间: 2008-6-30 09:55
标题: 对扩展光驱的一点疑惑
看了很多的素材,里面在寻找光驱时,运用了FINDCD和CDA,然后又有26个字母一个个去试盘符
但我觉得好像没什么必要,FINDCD后就可知你光驱的盘符,而且会自动赋给%cdrom%
如果是findcd /s 的话,也是直接赋给%CDROM1%,这样盘符就可以直接用变量了,没必再去字母偿试啊。还有那个CDA也感觉没什么用,用来确定的?那就是信不过FINDCD了
作者: lianjiang    时间: 2008-6-30 10:39
多个光驱的话,你怎么知道盘子就在第一光驱中?呵呵。
作者: yjfok961    时间: 2008-6-30 11:51
那CDA作用是检测有盘的光驱,并把变量传给cdrom?
作者: 紫狐    时间: 2008-7-1 15:24
CDA就是用来检测光驱里面是否有光盘的。
作者: dos时代菜鸟    时间: 2008-7-2 13:57
这是我做的 光盘查找批处理。
@echo off
rem 涉及第三方软件 findcd / aset / dready
rem 段名  功能
rem top:  获得光驱总个数并+1后赋值给变量n,如果光驱个数为0就进入 nocd 段
rem loop: 对每一个光驱的状态进行循环判断,如果ready就进入 ok? 段
rem ok?:  判断准备好的光驱中是否为dostools光盘,如果不是就继续 loop
rem       如果是就进入 ok
rem ok:   显示 dostools 光驱盘符
rem nocd: 显示没有符合条件的光盘
rem end:  善后,清理内存变量

rem 注:由于findcd n 这个指令每运行一次就会在变量列表中多出一个cdrom所以
rem  需要用到shell级别的set程序及时清理变量,这里使用aset1.4,同时用到aset
rem  的计算功能.由于aset没有设备状态测试功能,只好借助dready帮忙.

:top
aset cdrom=
findcd 0  >nul
if %cdrom%*==0* goto Nocd
aset n :=%cdrom%+1
aset cdrom=

:loop
aset n :=%n%-1 >nul
if %n%*==0* goto NOCD
aset cdrom=
findcd %n% >nul
dready %cdrom%
if errorlevel 255 goto loop
if errorlevel 2 goto loop

:ok?
rem 通过判断光盘是否存在\command\dostools.bat这个文件来确定其是否为特指光盘
if not  exist %cdrom%\command\dostools.bat goto loop

:OK
ECHO CDROM=%CDROM%
GOTO END

:nocd
echo No CD_ROM Or all CD_ROM are not ready!

:end
aset m=
aset n=




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3