中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 04:12
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS开发编程 & 发展交流 (开发室) » DOS下如何编程来判断光驱已经装入?
可打印版本  7,779 / 45
第16楼 pfox 发表于 2003-02-17 00:00
银牌会员 发帖 446 积分 1,451
虽然麻烦了点,但是也是一个很不错的处理方法(我原来就是不想再用批处理进行转换)。

:)
第17楼 Lydong 发表于 2003-02-20 00:00
元老会员 发帖 407 积分 1,468 来自 广州
能不能对 FINDCD 再做加强,以实现上述功能呢?这样可以省去一些麻烦.
第18楼 Lydong 发表于 2003-02-20 00:00
元老会员 发帖 407 积分 1,468 来自 广州
运行FINDCD之后,用SET命令会出现几行乱码。是不是程序的问题?
第19楼 Wengier 发表于 2003-02-20 00:00
系统支持 发帖 10,521 积分 27,736
什么乱码?
第20楼 Lydong 发表于 2003-02-21 00:00
元老会员 发帖 407 积分 1,468 来自 广州
运行FINDCN之前执行SET命令
-------------------------------------------------------------------------

E:\>set
TMP=C:\WINDOWS\TEMP
TEMP=C:\WINDOWS\TEMP
PROMPT=$p$g
winbootdir=C:\WINDOWS
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
COMSPEC=C:\WINDOWS\COMMAND.COM
windir=C:\WINDOWS
BLASTER=A220 I5 D1 T4

E:\>

---------------------------------------------------------------------------------------

运行FINDCN之后:
---------------------------------------------------------------------------------------

E:\恒昌电脑刻录光盘\dos2\FINDCD>findcd
CDROM=F:

E:\恒昌电脑刻录光盘\dos2\FINDCD>set
TMP=C:\WINDOWS\TEMP
TEMP=C:\WINDOWS\TEMP
PROMPT=$p$g
winbootdir=C:\WINDOWS
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
COMSPEC=C:\WINDOWS\COMMAND.COM
windir=C:\WINDOWS
BLASTER=A220 I5 D1 T4
CMDLINE=findcd
CDROM=F:
%u蟍??C
梃?3缷琚!??
9PSRW??
??緕媽D6墊4荄@
苿?
$荄D

E:\恒昌电脑刻录光盘\dos2\FINDCD>

---------------------------------------------------------------------------------------

第21楼 Wengier 发表于 2003-02-21 00:00
系统支持 发帖 10,521 积分 27,736
好吧,既然如此,我再次做了增强,增加了以下选项(注:一次最多只能输入一个选项):

/N:只在屏幕上显示,而不设置环境变量;
/Q:不在屏幕上显示,而只设置环境变量;
/?:帮助;
/S:全部设置模式(即pfox和lydong想要的效果)。例如,现有F与G盘两个光驱,运行FINDCD /S后的结果是:

CDROM=2
CDROM1=F:
CDROM2=G:

注:若运行正常的话,则ERRORLEVEL值为0,否则为1(无光驱)或2(无法设置环境变量)。

下载地址:打开附件 链接已失效(管理员注 2009-4-28)

lydong:我倒从没有发现有乱码现象,无论是在纯DOS下还是在DOS窗口下都没有。


第22楼 Lydong 发表于 2003-02-21 00:00
元老会员 发帖 407 积分 1,468 来自 广州
谢谢Wengier,你的FINDCD现在很好用了,而且没有乱码了。
第23楼 pfox 发表于 2003-02-22 00:00
银牌会员 发帖 446 积分 1,451
呵呵,Wengier,在目前的findcd已经非常完善,但我还想再提一个,就是你既然用CDROM来存储Cdrom的个数,那么为什么不在无光驱的情况下直接把CDROM置为0?这样就可以不使用ERRORLEVEL来判断是否有光驱存在,而可以直接判断CDROM是否等于0来检测是否有光驱?不好意思!
第24楼 Wengier 发表于 2003-02-22 00:00
系统支持 发帖 10,521 积分 27,736
其实是这样的,如果光驱不存在,那么FINDCD在将ERRORLEVEL的值设为1的同时,将不会设置CDROM变量,因此,要判断是否有光驱其实很简单,即只需运行FINDCD后检查CDROM变量是否存在即可,例如:

FINDCD
IF %CDROM%#==# ECHO No CDROM!

或者,使用FINDCD 0的格式,若光驱不存在,CDROM变量的值将为0。

不过,如果您是指在无光驱的情况下运行FINDCD /S后CDROM变量的值应为0,那倒是个好主意。请问您是不是这个意思?
第25楼 pfox 发表于 2003-02-24 00:00
银牌会员 发帖 446 积分 1,451
就是这个意思。:)
第26楼 Wengier 发表于 2003-02-24 00:00
系统支持 发帖 10,521 积分 27,736
没错了,下载地址:
打开附件 链接已失效(管理员注 2009-4-28)

另外,我做的最新版的MS-DOS 7.10启动盘中已经包含此FINDCD了,下载地址:
http://newdos.yginfo.net/dosware/mdos71bd.zip
第27楼 Lydong 发表于 2003-04-07 00:00
元老会员 发帖 407 积分 1,468 来自 广州
Wengier :
我装了双光驱,我想在AUTOEXEC.BAT执行时显示第一个光驱盘符,但执行了FINDCD后显示的CDROM1却为最后一个光驱盘符.显示如下:

I:\>findcd /s
CDROM=2
CDROM1=L:
CDROM2=K:

I:\>

如果是在光驱数量不定的情况下判断第一个光驱盘符就有点困难了,除非是判断最后的光驱盘符.
但我觉得还是按顺序好一点,所以希望您能再改一下您的程序.


第28楼 Wengier 发表于 2003-04-07 00:00
系统支持 发帖 10,521 积分 27,736
如果是同一个光驱设备名(例如MSCD001)的话,顺序确实会反过来了,我去看看.不过如果是多个光驱设备名的话,则是按顺序来的.
第29楼 Lydong 发表于 2003-04-07 00:00
元老会员 发帖 407 积分 1,468 来自 广州
能改过来吗?
第30楼 Wengier 发表于 2003-04-08 00:00
系统支持 发帖 10,521 积分 27,736
我重新去看了一下FINDCD源程序,可惜一是那些汇编代码改起来非常复杂(且INT2F中断的150D号功能返回的光驱盘符列表似乎本身就不完全是正顺序),二是我现在没有同一设备名的双光驱去测试(因为对于不同设备名的双光驱则是按顺序来的),没办法了~~
上一页  1 2 3 4  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023