Board logo

标题: 请教一个批处理难题 [打印本页]

作者: xjhw     时间: 2006-4-24 22:22    标题: 请教一个批处理难题

本人是一个刚学习DOS的未入门的初学者,学习在分析一个启动光盘时对其AUTOEXEC.BAT文件的编写原理有点糊涂,不知为什么作者使用了
CDA %CDROM% > NUL
IF errorlevel 1 GOTO NEXTCD
IF NOT EXIST %CDROM%:\DM\SEAGATE\DM.EXE GOTO NEXTCD
GOTO BOOT
这段。在此特请教各位大侠,DM.EXE 是起什么作用的?附上配置文件和批处理文件,请帮忙详细分析一下。本人不胜感激!!!最好能给出详细的编写思路,谢谢!
CONFIG.SYS文件内容:
device=himem.sys /testmem:off
DEVICEHIGH=VIDE-CDD.SYS /D:mscd000
DEVICEHIGH=ASPICD.SYS /D:mscd000
files=10
buffers=15
dos=high,umb
stacks=9,256
devicehigh=ramdrive.sys /E 4096
lastdrive=z
AUTOEXEC.BAT文件内容:
@ECHO OFF
PROMPT $P$G
set temp=c:\
set tmp=c:\
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
CALL SETRAMD.BAT %LglDrv%
COPY COMMAND.COM %RAMD%:\
COPY RESTART.COM %RAMD%:\
COPY TW.EXE %RAMD%:\
REM EXTRACT /E /L %RAMD:\ EBD.CAB > NUL
SET COMSPEC=%RAMD%:\COMMAND.COM
PATH=%RAMD%:\;%CDROM%:\DOS\;A:\;

LH KILLER
LH CTMOUSE

LH MSCDEX.EXE /D:MSCD000 /L:%CDROM%

CDA %CDROM% > NUL
IF errorlevel 1 GOTO NEXTCD
IF NOT EXIST %CDROM%:\DM\SEAGATE\DM.EXE GOTO NEXTCD
GOTO BOOT

:NEXTCD
CALL CHCDROM.BAT C D E F G H I J K L M N O P Q R S T U V W X Y Z
GOTO BOOT

:BOOT
Set LglDrv=
PATH=%RAMD%:\;A:\;C:\;%CDROM%:;%CDROM%:\DOS\;%RAMD%:\BAT\;%CDROM%:\;
MD %RAMD%:\TEMP
XXCOPY /E /H %CDROM%:\DOS\EBD %RAMD%:\ > NUL
COPY %CDROM%:\DOS\GHOST\*.* %RAMD%:
%RAMD%:
GHOST.EXE
GOTO RESET

:RESET
作者: zhangxue     时间: 2006-4-25 09:45
相当于一个标记,这是考虑到多光驱情况下的普遍写法,用于确定那个才是启动盘所在的光驱。