![]() |
中国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 |