中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-18 02:22
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » DOS下如何编程来判断光驱已经装入? 查看 7,109 回复 45
16 发表于 2003-02-17 00:00 ·  中国 广东 汕头 电信
银牌会员
★★★
积分 1,451
发帖 446
注册 2002-10-20 00:00
UID 29
性别 男
状态 离线
虽然麻烦了点,但是也是一个很不错的处理方法(我原来就是不想再用批处理进行转换)。

:)
17 发表于 2003-02-20 00:00 ·  中国 广东 广州 增城区 电信
元老会员
★★★
积分 1,468
发帖 407
注册 2002-10-21 00:00
UID 34
性别 男
来自 广州
状态 离线
能不能对 FINDCD 再做加强,以实现上述功能呢?这样可以省去一些麻烦.
欢迎大家观临我的个人主页:

http://dosdiy.bluepc.com.cn/
http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn lydong@yeah.net
----------------------------------------------
18 发表于 2003-02-20 00:00 ·  中国 广东 广州 增城区 电信
元老会员
★★★
积分 1,468
发帖 407
注册 2002-10-21 00:00
UID 34
性别 男
来自 广州
状态 离线
运行FINDCD之后,用SET命令会出现几行乱码。是不是程序的问题?
欢迎大家观临我的个人主页:

http://dosdiy.bluepc.com.cn/
http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn lydong@yeah.net
----------------------------------------------
19 发表于 2003-02-20 00:00 ·  加拿大 Telus
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
UID 9
状态 离线
什么乱码?
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

20 发表于 2003-02-21 00:00 ·  中国 广东 广州 增城区 电信
元老会员
★★★
积分 1,468
发帖 407
注册 2002-10-21 00:00
UID 34
性别 男
来自 广州
状态 离线
运行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>

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

欢迎大家观临我的个人主页:

http://dosdiy.bluepc.com.cn/
http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn lydong@yeah.net
----------------------------------------------
21 发表于 2003-02-21 00:00 ·  美国 肯塔基州 费耶特县 列克星敦 Charter_Communications
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
UID 9
状态 离线
好吧,既然如此,我再次做了增强,增加了以下选项(注:一次最多只能输入一个选项):

/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窗口下都没有。


Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

22 发表于 2003-02-21 00:00 ·  中国 广东 广州 增城区 电信
元老会员
★★★
积分 1,468
发帖 407
注册 2002-10-21 00:00
UID 34
性别 男
来自 广州
状态 离线
谢谢Wengier,你的FINDCD现在很好用了,而且没有乱码了。
欢迎大家观临我的个人主页:

http://dosdiy.bluepc.com.cn/
http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn lydong@yeah.net
----------------------------------------------
23 发表于 2003-02-22 00:00 ·  中国 广东 汕头 电信
银牌会员
★★★
积分 1,451
发帖 446
注册 2002-10-20 00:00
UID 29
性别 男
状态 离线
呵呵,Wengier,在目前的findcd已经非常完善,但我还想再提一个,就是你既然用CDROM来存储Cdrom的个数,那么为什么不在无光驱的情况下直接把CDROM置为0?这样就可以不使用ERRORLEVEL来判断是否有光驱存在,而可以直接判断CDROM是否等于0来检测是否有光驱?不好意思!
24 发表于 2003-02-22 00:00 ·  美国 肯塔基州 费耶特县 列克星敦 Charter_Communications
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
UID 9
状态 离线
其实是这样的,如果光驱不存在,那么FINDCD在将ERRORLEVEL的值设为1的同时,将不会设置CDROM变量,因此,要判断是否有光驱其实很简单,即只需运行FINDCD后检查CDROM变量是否存在即可,例如:

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

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

不过,如果您是指在无光驱的情况下运行FINDCD /S后CDROM变量的值应为0,那倒是个好主意。请问您是不是这个意思?
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

25 发表于 2003-02-24 00:00 ·  中国 广东 汕头 电信
银牌会员
★★★
积分 1,451
发帖 446
注册 2002-10-20 00:00
UID 29
性别 男
状态 离线
就是这个意思。:)
26 发表于 2003-02-24 00:00 ·  美国 肯塔基州 费耶特县 列克星敦 Charter_Communications
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
UID 9
状态 离线
没错了,下载地址:
打开附件 链接已失效(管理员注 2009-4-28)

另外,我做的最新版的MS-DOS 7.10启动盘中已经包含此FINDCD了,下载地址:
http://newdos.yginfo.net/dosware/mdos71bd.zip
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

27 发表于 2003-04-07 00:00 ·  中国 广东 广州 增城区 电信
元老会员
★★★
积分 1,468
发帖 407
注册 2002-10-21 00:00
UID 34
性别 男
来自 广州
状态 离线
Wengier :
我装了双光驱,我想在AUTOEXEC.BAT执行时显示第一个光驱盘符,但执行了FINDCD后显示的CDROM1却为最后一个光驱盘符.显示如下:

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

I:\>

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


欢迎大家观临我的个人主页:

http://dosdiy.bluepc.com.cn/
http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn lydong@yeah.net
----------------------------------------------
28 发表于 2003-04-07 00:00 ·  美国 肯塔基州 费耶特县 列克星敦 Charter_Communications
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
UID 9
状态 离线
如果是同一个光驱设备名(例如MSCD001)的话,顺序确实会反过来了,我去看看.不过如果是多个光驱设备名的话,则是按顺序来的.
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

29 发表于 2003-04-07 00:00 ·  中国 广东 广州 增城区 电信
元老会员
★★★
积分 1,468
发帖 407
注册 2002-10-21 00:00
UID 34
性别 男
来自 广州
状态 离线
能改过来吗?
欢迎大家观临我的个人主页:

http://dosdiy.bluepc.com.cn/
http://dosdiy.ys168.com/


EMAIL: lydong@china.com.cn lydong@yeah.net
----------------------------------------------
30 发表于 2003-04-08 00:00 ·  美国 肯塔基州 费耶特县 列克星敦 Charter_Communications
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
UID 9
状态 离线
我重新去看了一下FINDCD源程序,可惜一是那些汇编代码改起来非常复杂(且INT2F中断的150D号功能返回的光驱盘符列表似乎本身就不完全是正顺序),二是我现在没有同一设备名的双光驱去测试(因为对于不同设备名的双光驱则是按顺序来的),没办法了~~
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

论坛跳转: