无忧启动论坛

标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘? [打印本页]

作者: gmy    时间: 2005-4-6 17:22
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
[这个贴子最后由gmy在 2005/04/07 07:42am 第 1 次编辑]

为使大家深入讨论DOS技术,本版主会经常提出一些有难度的问题,回答正确的给予加威望等形式的奖励,并且原贴解固加精(解固是为了给下一题目让地方,加精是为了以后便于查阅)
DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
    我们在制作光盘时经常会遇到定位光盘文件的问题,有人会说,那还不容易,用FINDCD检测,再用%CDROM%:\C.GHO定位,其实这种方法只能对付第一光驱,第二光驱就无能为力了,你控制不了使用者把光盘放到哪个光驱里,是吗?所以,请大家解决一下。
二楼gotomsdos回答基本正确,威望加1  (本版主只能有这一点奖励权力,SORRY)
作者: gotomsdos    时间: 2005-4-6 20:05
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
[这个贴子最后由gotomsdos在 2005/04/06 08:08pm 第 1 次编辑]

首先在CONFIG.SYS中加载光驱,并 SHELL=COMMAND.COM /F /P /E:640 抑制ABORT,RETRY,FAIL出错提示
再在AUTOEXEC.BAT中加入:
findcd /s  (/s 能给多个光驱多个变量...)
if exist %cdrom1%\sound\sbinit.com goto cd1  sound\sbinit.com(光盘一文件)
if exist %cdrom2%\sound\sbinit.com goto cd2
if exist %cdrom3%\sound\sbinit.com goto cd3
if exist %cdrom4%\sound\sbinit.com goto cd4
:cd1
%cdrom1%
set romcd=%cdrom1%
goto end
:cd2
%cdrom2%
set romcd=%cdrom2%
goto end
:cd3
%cdrom3%
set romcd=%cdrom3%
goto end
:cd4
%cdrom4%
set romcd=%cdrom4%
goto end
:end
运行程序...

作者: 弄潮儿-NET    时间: 2005-4-6 21:02
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
加分没用,加钱还差不多...
作者: gmy    时间: 2005-4-6 22:51
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
re:gotomsdos   做的不错.加威望.

作者: dongdao477    时间: 2005-4-6 23:35
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
嗯.楼主的这个建议不错.
作者: gmy    时间: 2005-4-7 07:36
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
re:gotomsdos
还有一个不足的地方:
CONFIG抑制ABORT,RETRY,FAIL出错提示 的方法  是否也殃及 FORMAT 等危险的但又需要手工选择判断选择错误提示的命令,因为它是全局变量啊!

作者: 冰上人    时间: 2005-4-7 09:21
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
   我很想知道这一点。
  我一个刻录机(主盘),一个光驱(从盘)。光盘启动时,只能放在主盘,放在从盘则不读,直接进入硬盘。任何盘皆如此,包括各种光启的WINDOWS安装盘。(以前安装系统,看到刻录机一个劲儿地响,心疼啊)。
  要如何设置,才能自动搜索到第二光驱以便读盘运行?
  
作者: 6618    时间: 2005-4-7 17:24
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
看了这一贴,确实学到了一点点东西。
作者: gotomsdos    时间: 2005-4-7 18:56
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
"只能放在主盘,放在从盘则不读,直接进入硬盘。任何盘皆如此,"
这说法不对吧?
我两个光驱,放在从盘照样可以启动啊!
gmy:
是不是抑制ABORT,RETRY,FAIL出错提示后,在运行COMMAND 加什么参数,恢复到一般状态吧? 什么参数呢?


作者: cq-bbcyb    时间: 2005-4-8 07:25
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
请问一下:
“sound\sbinit.com”文件是不是光盘中固有的?

作者: 6618    时间: 2005-4-8 12:00
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
下面引用由cq-bbcyb2005/04/08 07:25am 发表的内容:
请问一下:
“sound\sbinit.com”文件是不是光盘中固有的?
当然不是,你自己可能指定别的文件。
作者: gmy    时间: 2005-4-8 14:36
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
re:gotomsdos
让COMMAND回复正常参数不容易,但可以用释放内存小工具 mark 和 release,
清除最后加载的command.com
作者: Climbing    时间: 2005-4-8 20:40
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
这么不规范的回答竟然也给加精了,晕哦~~~
既然并不限制使用第三方的工具(findcd本来就是第三方的工具,gotomsdos应该使用的是Wengier版的findcd),那么为什么不试用一下Bart的findcd或者Wengier版的findcd + Horst 的dready程序(当然还有一个cda)呢?
有鉴于此,gmy版主的主意虽然不错,但请在判断答案的标准上不要独自做主,因为太有失公允。
作者: magictek    时间: 2005-4-9 00:07
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
我是这样判断的:
==Config.Sys==
Device=HiMem.Sys /TestMem:Off
Device=OAKCDROM.SYS /D:MSCD000
==AutoExec.Bat==
@Echo Off
Goto Main
:Main
MSCDEX.Exe /D:MSCD000 /L:X       ;定第一光驱盘符为X,第二为Y,第三为Z,毕竟很少有人使用到3个或者更多光驱
if Exist X:\Folder\FileName.Ext Goto CD_X
if Exist Y:\Folder\FileName.Ext Goto CD_Y
if Exist Z:\Folder\FileName.Ext Goto CD_Z
Goto End
:CD_Z
....
Goto End
:CD_Y
....
Goto End
:CD_X
....
Goto End
:End

作者: gmy    时间: 2005-4-9 00:20
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
re:Climbing
加入dready的方案要比command /f 合理.
作者: magictek    时间: 2005-4-9 00:30
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
我的答案没有使用MS-DOS以外的工具哦
作者: gmy    时间: 2005-4-9 10:45
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
[这个贴子最后由gmy在 2005/04/11 11:25pm 第 1 次编辑]

re: magictek   
你的错误在于,没有解决出现Abort,Retry,Fail 自动选择,否则必须手工输入A,R,F才能继续,这是我们不想看到的。


作者: wuyou001    时间: 2005-4-10 06:23
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
学习过了,谢谢,顶!
作者: gczxhzb    时间: 2005-4-20 09:05
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
用dready来判断
作者: gotomsdos    时间: 2005-4-21 18:39
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
[这个贴子最后由gotomsdos在 2005/04/21 06:47pm 第 1 次编辑]

听说BART的FINDCD 不支持多光驱?
试了试DREADY,也不错,但是他不能改变系统COMMAND 的属性,启动光盘或附带程序是要求全自动的,尤其对绝大多数菜鸟是必要的,所以COMMAND /F /P能达到这要求...
我想也没有太大危险,因为程序在做危险性操作之前当然肯定要提示的...
没用COMMAND /F /P的正常状态给出的诸如"ABORT,RETRY,FAIL ?"没有太大作用,反而阻止了自动化....
有一次,我用了一个工具盘,启动后选了一个运行了,一会儿停在那里,我一看,是一个无伤大雅的小警告,按了回车后,就没有执行了,直接回到了DOS! 对于懂一点DOS的还能用DIR 查看一下程序名,再手动运行,但对于绝大多数菜鸟就觉得云里雾里了...还以为出了什么大问题,或者认为你这个东东不行..
不过,如有谁找到更好的替代方法,就说出来吧...


作者: cq-bbcyb    时间: 2005-4-25 14:45
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
下面引用由66182005/04/08 12:00pm 发表的内容:
当然不是,你自己可能指定别的文件。
FOR %%i IN (D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%i:\sound\sbinit.com SET CDROM=%%i:
作者: pk4321    时间: 2005-4-26 10:15
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
用我以前做的func.exe可以判断的。
作者: gmy    时间: 2005-4-26 13:16
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
pk4321  就是  FUNC  的作者吧,久仰了。
另外,我以前也做过FINDCD.BAT(丢了),基本思路是,通过MSCDEX(或同类工具)产生TXT报告,搜索这一报告的特定位置,可判断出光驱的数目和光驱的盘符。
作者: 紫狐    时间: 2005-4-28 16:15
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
我习惯用cda,而且我使用的findcd是Wengier的版本。
作者: xusen    时间: 2005-5-24 01:42
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
[这个贴子最后由xusen在 2005/06/03 12:20pm 第 7 次编辑]

用 IF EXIST drive:\path\filename 如果盘符(drive:)不存在,会出现错误提示。
判断多光驱是否有光盘,如存在则赋值给变量
所需工具 "findcd.exe" "dready.com"
----------------------------
@echo off
findcd /s
if %cdrom1%#==# goto exit
echo @echo off>ifcd.bat
echo :next>>ifcd.bat
echo shift>>ifcd.bat
echo if %%1#==over# goto end>>ifcd.bat
echo dready %%1 /w>>ifcd.bat
echo if errorlevel 2 goto next>>ifcd.bat
echo yescd=%%1 %%yescd%%>>ifcd.bat
echo goto next>>ifcd.bat
echo :end>>ifcd.bat
if not %cdrom1%#==# set cd=%cdrom1%
if not %cdrom2%#==# set cd=%cdrom2% %cd%
if not %cdrom3%#==# set cd=%cdrom3% %cd%
if not %cdrom4%#==# set cd=%cdrom4% %cd%
if not %cdrom5%#==# set cd=%cdrom5% %cd%
call ifcd.bat start %cd% over
:exit
----------------------------
运行结果:有光盘片的盘符赋值给变量"yescd"(如有2张光盘片各在d: 和 e: 则yescd=e: d:)
作者: gmy    时间: 2005-5-24 08:34
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
dready 在我的电脑上用不了,不知为何?
作者: xusen    时间: 2005-5-24 08:42
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
在WIN2000下没问题XP就不行,DOS没问题
作者: xusen    时间: 2005-5-24 08:45
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
[这个贴子最后由xusen在 2005/05/24 08:46am 第 1 次编辑]

我自己做的启动盘基本都用这个判断,所以无论软盘、光驱、U盘、映像盘都可操作定位系统
作者: gmy    时间: 2005-5-24 10:32
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
dready的附件上传一个吧。
作者: xusen    时间: 2005-5-24 10:41
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
下面引用由gmy2005/05/24 10:32am 发表的内容:
dready的附件上传一个吧。
原文件吗?Wengier站长那就有或我盘里有,用RAR解压
批处理照样

作者: xusen    时间: 2005-5-24 11:44
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
[这个贴子最后由xusen在 2005/05/24 11:48am 第 2 次编辑]

DREADY.RAR[UploadFile=DREADY_1116906087.rar]
FIND.EXE   4.86KB(无DOS版本限制,可在WINDOWS下本运行)
FINDCD.EXE 3.11KB
DREADY.COM 496字节
批处理照样,如增加判断指定文件是否存在可在“echo if errorlevel 2 goto next>>ifcd.bat”行下进行
作者: 紫狐    时间: 2005-5-27 16:47
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
下面引用由gmy2005/05/24 08:34am 发表的内容:
dready 在我的电脑上用不了,不知为何?
那就试一试cda

作者: palser    时间: 2005-6-22 11:26
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
1./F 开关可以在命令行使用,即如:command /f
2./F 开关只是自动选择Fail应答ARIF错误消息,没有抑制其显示,抑制错误消息需要使用 ctty nul,并在随后用ctty con恢复。
3./E 640 环境空间设得太小了,对于大多数场合都不太足够;
4.判断光驱、光盘的问题是个老问题了,不用第三方工具的方案也有了很多,具体可以参见
http://bbs.cn-dos.net/dispbbs.asp?boardid=9&id=12892
作者: Brglng    时间: 2005-6-22 15:10
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
可以用IF EXIST %CDROM%\NUL 啊
作者: zhaofei1985    时间: 2005-6-22 15:31
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
学习了解
作者: xusen    时间: 2005-6-22 17:29
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
MS-DOS 既然设计了错误提示,那就有他的必要性---对于启动后的环境
“command /f”,设计了自动答复,那是对个别程序的需要

作者: minwei    时间: 2005-10-18 08:00
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
我一个刻录机(主盘),一个光驱(从盘)。光盘启动时,只能放在主盘自动批能全自动安装Windows,放在从盘则不能自动安装,希望高手能告诉大家详细命令
作者: gmy    时间: 2005-10-18 14:22
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
一键GHOST里有这个批处理。
作者: wangsupan    时间: 2005-10-25 14:30
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
老葛就是厉害!
作者: kaixinguo    时间: 2005-11-13 14:33
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
下面引用由冰上人2005/04/07 09:21am 发表的内容:
我很想知道这一点。
  我一个刻录机(主盘),一个光驱(从盘)。光盘启动时,只能放在主盘,放在从盘则不读,直接进入硬盘。任何盘皆如此,包括各种光启的WINDOWS安装盘。(以前安装系统,看到刻录机一个劲儿地 ...
我以前也碰到过你这种情况,建议先清一下bios设置试试.
作者: mszair    时间: 2005-12-22 09:21
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
主光盘启动,从光盘不启动也是有的,与主板BIOS有关。你可以通过跳线把刻录机设置成从,光驱设置成主。
作者: fengtao666    时间: 2006-1-17 12:36
标题: DOS有奖问答No1:怎么判断多光驱中哪个光驱有光盘?
顶替
作者: magictek    时间: 2006-6-2 23:14
顶起来,不错的帖子,论坛改版后就沉下去了
作者: yqb7456    时间: 2006-6-4 07:22
太深,沉不下去
作者: WittyHare    时间: 2006-6-28 23:12
我感觉题目和答案还是有些出入的,说是怎么样知道多光驱中哪个有光盘,都是用光盘上的文件来做的,我放张CD唱片进去,你怎么说,明明是有盘的,用文件就不能做了的.
作者: 超无限    时间: 2006-8-3 17:15
看到这贴子我想到以前我看到以前在电脑看好者里看到一篇关于系统(XP/2K/2K3)在关机时,检测光驱内有无光盘。有则弹出,(是不是可以再定义为弹出5秒供我们拿出光盘,5秒后再关闭光驱);无则继续关机。这样的文章。由于时间太久了。忘记要如何实现这一功能了。现在有很多光驱工具有这功能,包括解霸。如何不用这些第三方软件实现这一功能?比如批处理+注册表等。

我这个问题可能不应该问到这个地方,可是又不知问哪比较合适。所以请各位老师见谅。

[ 本帖最后由 超无限 于 2006-8-5 01:05 PM 编辑 ]
作者: 超无限    时间: 2006-8-5 12:41
各位老师都没有来看一下啊?没人关注,唉。郁闷。


实现这一功能。主要是为了保护光驱。我们很经常不用光盘了。却又不拿出来(或忘了拿出来。)

[ 本帖最后由 超无限 于 2006-8-5 01:04 PM 编辑 ]
作者: 超无限    时间: 2006-8-6 13:37
葛老师呢?
作者: langhua44944    时间: 2006-8-6 19:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: lisiyu108    时间: 2006-11-9 10:55
顶  哈哈~
作者: ccwan    时间: 2006-11-11 10:57
没讲清楚。
作者: studyczb    时间: 2006-11-26 22:20
呵呵。。。。这么多好东东。。。。又学了一点了。
作者: easontsui    时间: 2007-1-6 16:10
看过之后有些不太明白,为何非得定义X,Y,Z做光驱盘符,/L:X为何不可以改写成%cdrom1%?可能是我个人的见解,但我一直弄不清楚这个如何去定义。
作者: QianKun10    时间: 2010-6-7 14:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: save9015    时间: 2010-6-22 17:48
要不是红标题,还真没注意到这一贴,学习了。




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