中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-24 21:24
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » [求助]关于双光驱定义的问题!!!急!!! 查看 970 回复 8
楼 主 [求助]关于双光驱定义的问题!!!急!!! 发表于 2005-02-16 00:00 ·  中国 江苏 徐州 联通
初级用户
我没有钱 我不要脸
积分 147
发帖 17
注册 2005-01-16 00:00
21年会员
UID 35395
性别 男
状态 离线
近日做了一个自动启动GHOST的启动盘。我的电脑有2个光驱,当把启动盘放在第一个光驱的时候,运行一切正常,但放到第二个光驱里,总是要报一次错,跳过后仍能继续运行!
AUTOEXEC.BAT 如下:
@ECHO OFF
CLS
PROMPT $P$G
LH ZENO /Q > NUL
LH MSCDEX /D:IDE-CD /S /K > NUL
FINDCD /S > NUL
SET PATH=A:\
SET CDROM=
FOR %%A IN (%CDROM1%,%CDROM2%) DO IF EXIST %%A\GHOST.EXE SET CDROM=%%A
IF "%CDROM%"=="" GOTO ERROR
:RUNGHOST
%CDROM%
GHOST
REBOOT
:ERROR
A:
LH TWAY /NP > NUL
CLS
WBAT MENU (RED ON YELLOW) 9,23 :ERROR #1,30
IF ERRORLEVEL 1 REBOOT
REBOOT
当把启动盘放在第二个光驱里就会报错
出错的提示是:
CDR101:NOT READY READING DRIVE G
ABOUT,RETRY,FAIL?
当按下A键后仍能继续运行!
经过反复研究和测试,发现问题处在了FOR那句命令上。
FOR %%A IN (%CDROM1%,%CDROM2%) DO IF EXIST %%A\GHOST.EXE SET CDROM=%%A
这句命令可以判断启动盘所在的光驱,请问,在双光驱的情况下,有没有更好的方法来指定光盘所在的光驱盘符!
急啊!!!!
请各位老师指点一二~~~~~
我没有钱 我不要脸
我只要她的爱情给我一点点
2 发表于 2005-02-17 00:00 ·  中国 广东 广州 黄埔区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
你的FOR语句是从第一个光驱开始判断的,当一个光驱无盘时就会出现“NOT READY READING DRIVE G”。这是DOS的一个缺陷。我想到一个方法是修改CONFIG.SYS的shell语句:SHELL=COMMAND.COM /P /F /E:640,即COMMAND.COM加上/F参数,该参数是COMMAND.COM的一个隐藏参数,作用是容错,即当出现“ABORT,RETRY,FAIL?”时,DOS系统会自动“按”几次RETRY,如果仍继续出错,则自动选择“ABORT”返回,从而避免批处理因系统出错而中断。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
3 发表于 2005-02-17 00:00 ·  中国 江苏 徐州 联通
初级用户
我没有钱 我不要脸
积分 147
发帖 17
注册 2005-01-16 00:00
21年会员
UID 35395
性别 男
状态 离线
顺便提一句,你上次写的EJ32.EXE,能不能把那个弹出光驱的图标绑到EJ32.EXE上啊!
我没有钱 我不要脸
我只要她的爱情给我一点点
4 发表于 2005-02-17 00:00 ·  中国 江苏 徐州 联通
初级用户
我没有钱 我不要脸
积分 147
发帖 17
注册 2005-01-16 00:00
21年会员
UID 35395
性别 男
状态 离线
再次感谢JonePeng!!!
我没有钱 我不要脸
我只要她的爱情给我一点点
5 发表于 2005-02-17 00:00 ·  中国 江苏 徐州 联通
初级用户
我没有钱 我不要脸
积分 147
发帖 17
注册 2005-01-16 00:00
21年会员
UID 35395
性别 男
状态 离线
另外我还想问一下,如果我用LH SHSUCDX /D:?IDE-CD,X > NUL来指点光驱的盘符,第一个光驱的盘符一定是X。请问,要是双光驱,用这条命令会有什么结果?第二个光驱的盘符应该是什么啊?
我没有钱 我不要脸
我只要她的爱情给我一点点
6 发表于 2005-02-17 00:00 ·  中国 广东 广州 黄埔区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
SHSUCDX命令是这样的,它的盘符参数是指第一个光驱的盘符,如果有两个光驱,那么第二个光驱盘符就是Y,紧挨着第一个光驱盘符。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
7 发表于 2005-02-18 00:00 ·  中国 广东 广州 黄埔区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
以下是引用扑勒蛾子在2005-2-17 18:38:56的发言:

顺便提一句,你上次写的EJ32.EXE,能不能把那个弹出光驱的图标绑到EJ32.EXE上啊!

哦,不好意思,这个程序是三年前用VB做的,当时找不到恰当的图标,所以不考虑捆绑图标。
后来为了防止反汇编,我用UPX把EJ32.exe压缩并加壳。如果要添加图标,可以先将此程序脱壳,然后用ExeScope或ResourceHacker来改,可是我试过好像脱不了壳……
可惜现在那个源程序在一次格式化硬盘中不幸丢失了。现在计划完善这个程序中……
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
8 发表于 2005-02-18 00:00 ·  中国 上海 联通
初级用户
我没有钱 我不要脸
积分 147
发帖 17
注册 2005-01-16 00:00
21年会员
UID 35395
性别 男
状态 离线
另外,你的EJ32只能弹出主光驱,第二个光驱弹不出来!
我没有钱 我不要脸
我只要她的爱情给我一点点
9 发表于 2005-02-18 00:00 ·  中国 上海 联通
初级用户
我没有钱 我不要脸
积分 147
发帖 17
注册 2005-01-16 00:00
21年会员
UID 35395
性别 男
状态 离线
顺便问一下,subst这个命令是做什么用的啊,具体的用法是什么
我没有钱 我不要脸
我只要她的爱情给我一点点
论坛跳转: