发新话题
打印

请教:关于自动判断光驱盘符的问题

请教:关于自动判断光驱盘符的问题

近日修改win98启动盘的config.sys和autoexec.bat程序,希望机器启动后直接
加载光驱并进入光盘的目录。
   修改后,发现批处理程序对两张光盘区别对待。原因出在findcd.exe上。
   下面是部分程序:

LH MSCDEX.EXE /D:mscd001 /L:D      加载光驱,并指定光驱为D盘

set CDROM=FOO23
FINDCD.EXE                         查找光驱的盘符(D盘)并将盘符返回给变量cdrom(返
回D:)
if "%CDROM%"=="FOO23" goto QUIT
path=a:\;%CDROM%\
%CDROM%                            进入光盘(D盘)目录
cd win98                           进入光盘(D盘)目录下的win98文件夹
dir                                显示光盘(D盘)目录下的win98文件夹下的文件

:QUIT

运行结果:以上的程序顺利执行,进入(D盘)目录下的win98文件夹!


LH MSCDEX.EXE /D:mscd001 /L:D      加载光驱,并指定光驱为D盘
set CDROM=FOO23
FINDCD.EXE                         查找光驱的盘符并将盘符返回给变量cdrom
if "%CDROM%"=="FOO23" goto QUIT
path=a:\;%CDROM%\
%CDROM%                            进入光盘目录
cd ghost                           进入光盘目录下的ghost文件夹
ghost.exe                          执行光盘目录下的ghost文件夹下的ghost程序

:QUIT

运行结果:此程序运行时跳过执行ghost程序,也没有预期进入ghost文件夹,经检测,
发现CDROM==FOO23,也就是说虽然运行finded.exe,但并没有返回正确的盘符(D:)给
CDROM变量。
  有三个疑问:1. 两个程序的前部分是一样的,第一个程序正常返回了盘符D:给CDROM变
                量, 而第二程序却没有正常返回D:给CDROM变量,findcd.exe程序为何
                有区别对待这两张光盘(经检测,只有win98安装盘可以顺利地通过
                findcd.exe程序的检查并返回盘符给cdrom)???
               2. 既然已经指定了光驱的盘符为D:, 为何win98的启动盘却还要多此一
                 举用findcd来再次检测实际的盘符呢??再次检测最终却导致了第二个
                 程序运行出错。一个正常查到盘符,另一个却没有查到盘符。
               3.set CDROM=FOO23
                    FINDCD.EXE                         查找光驱的盘符并将盘符返回给变量cdrom
                    if "%CDROM%"=="FOO23" goto QUIT
                此处的判断语句有何作用?不判断为什么不行?变量为什么要设置为“F0023"而不是别的?

   注:这两个程序运行以后光盘的盘符都是指定的D:,即第二个程序想进入指定的ghost
目录,需要手动执行。

还请高手多多指点,非常感谢!!!

TOP

发新话题