|
|
请教:双光驱怎样在“path=%RAMD%:\;a:\;%path%;%CDROM%:\”中添加语句
[UploadFile=34_971_33.rar][这个贴子最后由Climbing在 2004/03/19 09:46am 第 1 次编辑]
找了半天原因,终于发现了故障根源。
1、你发过来的文件仍然是原始版本,没有将加入我的语句的autoexec.bat发过来。
2、故障的根本原因是:在你调用应用程序的*.bat中,例如diskgen.bat中,你使用的CDROM变量是不带冒号的,而我们设置的CDROM变量都加上了冒号,也就是说,假设你的光驱在F:,那么我的程序会 set CDROM=F:,而你却需要CDROM=F。解决这个问题的办法有两个,第一个:修改你的所有批处理,使用带冒号的CDROM变量,另外一个办法就是将CDROM设置成不带冒号的盘符。考虑到后一种方案比较简单,于是我重新编写了你的autoexec.bat,随附件发上。将附件中的autoexec.bat解出来覆盖你原来的即可,不用修改其它的内容。另外,要保证该批处理运行正常,务必你的启动光盘在放在光驱中(无论哪个光驱都可以),并且一定要保证光盘boot\diskgen目录下存在diskgen.exe文件。
3、另外,在测试时发现一个有趣的问题,不能通过检测光盘上存在某个目录而检测哪个光驱中有你需要的光盘,一定要通过检测光盘上是否存在某个文件才行。有兴趣的可以试一下。
在上面的例子中,我开始使用if exist %%I\BOOT\NUL来检测,运行不正常,后来改成了IF exist %%I\BOOT\DISKGEN\DISKGEN.EXE才解决了问题。
新的AUTOEXEC.BAT内容:
@ECHO OFF
set path=c:\windows;c:\windows\command
\hibinv.exe
set EXPAND=YES
SET DIRCMD=/O:N
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
cls
call setramd.bat %LglDrv%
set temp=c:\
set tmp=c:\
set path=%RAMD%:\;a:\;%path%;
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
copy xxcopy.exe %RAMD%:\ > NUL
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
LH %ramd%:\MSCDEX.EXE /D:mscd001
if not %CDROM%*==* set CDROM=
if not %CDROM%*==* set CDROM=
findcd /s > nul
if "%cdrom%"=="1" set path=%path%;%cdrom1%\;
if "%cdrom%"=="2" set path=%path%;%cdrom1%\;%cdrom2%\;
if "%cdrom%"=="3" set path=%path%;%cdrom1%\;%cdrom2%\;%cdrom3%\;
IF NOT %CDROM%*==* set CDROM=
IF NOT %CDROM%*==* set CDROM=
SET BOOTCD=
for %%I in (%cdrom1%,%cdrom2%,%cdrom3%) DO if exist %%I\BOOT\DISKGEN\DISKGEN.EXE set BOOTCD=%%I
IF %BOOTCD%*==* goto _nobootcd
for %%I in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) DO if %BOOTCD%==%%I: set CDROM=%%I
goto _findbootcdok
:_nobootcd
echo.
echo Error: I cannot find your CDROM where we boot from!
echo Please make sure you insert the boot disc in it!
pause
:_findbootcdok
mouse
cls
lwt
|
|