|
回复 #4 2011qqts 的帖子
具体你的img结构我不太清楚,给你看下我修改过的RUN模块。
可能不是最后的写法,太长时间没去关注了,不过,可以参考一下。
(RUN修改的部分内容)
更改内容:
:.img
:.ima
:.gz
::最后修改时间 20110207
if /i "%~n1"=="firadisk" if not #%x2==# goto :firaiso
call :find %path%%%~nx1
if not exist %path%%%~nx1 goto :err
map --mem %path%%%~nx1 (0)
map --hook
set nstr=%~n1
set mdstr=%nstr:~0,6%
if /i "%mdstr%"=="maxdos" && if not #%~2==# && if not /i "%~2"=="--max-ext" call :maxdos %~1 %~2 %~3 %~4 %~5 %~6 %~7 %~8 %9
if /i "%mdstr%"=="maxdos" && if /i "%~2"=="--max-ext" call :maxdos %~2 %~3 %~4 %~5 %~6 %~7 %~8 %9
if not /i "%mdstr%"=="maxdos" && if /i "%~2"=="--max-ext" call :maxdos %~2 %~3 %~4 %~5 %~6 %~7 %~8 %9
rootnoverify (0)
if not exist (0)/menu.lst chainloader (0)+1 || configfile (0)/menu.lst
boot
exit
:maxdos
::最后修改时间 20110208
::(兼容maxdos7、8以及兼容论坛40M的增强版,注意版本不同参数的写法不同)
if not exist (0)/CONFIG.SYS exit
if not exist (0)/AUTOEXEC.BAT exit
cat --locate="default=" --replace="default=1,0" --number=1 (0)/CONFIG.SYS
cat --locate="call" --replace="Call" (0)/AUTOEXEC.BAT
cat --locate="CALL" --replace="Call" (0)/AUTOEXEC.BAT
cat --locate="m.bat" --replace="M.BAT" (0)/AUTOEXEC.BAT
cat --locate="M.bat" --replace="M.BAT" (0)/AUTOEXEC.BAT
cat --locate="m.BAT" --replace="M.BAT" (0)/AUTOEXEC.BAT
debug 1
cat --locate="Call M.BAT" --number=1 (0)/AUTOEXEC.BAT | set offset=
debug %debug%
write --offset=0x%offset% (0)/AUTOEXEC.BAT %~2 %~3 %~4 %~5 %~6 %~7 %~8 %9 \r M.BAT \r
exit
调用例子:
title MAXDOS8工具箱Diskgen不带--max-ext参数
RUN /BOOT/IMGS/MAXDOS8.IMG Diskgen.bat
title MAXDOS8工具箱Diskgen带--max-ext参数
RUN /BOOT/IMGS/MAXDOS8.IMG --max-ext Diskgen.bat
title MAXDOS40M增强版Diskgen3.4不带--max-ext参数
RUN /BOOT/IMGS/MAXDOS40M.IMG Call Diskgen.bat d34
title MAXDOS40M增强版Diskgen3.4带--max-ext参数
RUN /BOOT/IMGS/MAXDOS40M.IMG --max-ext Call Diskgen.bat d34
title MAX7.IMG工具箱ghost必须带--max-ext参数
RUN /BOOT/IMGS/MAX7.IMG --max-ext Call gh.bat
title MAX7.IMG工具箱Diskgen必须带--max-ext参数
RUN /BOOT/IMGS/MAX7.IMG --max-ext lh ctmouse \r diskgen
title 运行MAXDOS8工具箱
RUN /BOOT/IMGS/MAXDOS8.IMG
[ 本帖最后由 Plantsoot 于 2011-3-24 21:21 编辑 ] |
|