|
现在先公布一下按照18#楼提出的思路,经过仔细测试,得出的结果:测试成功!见附图二和附图三(测试时先后出现的界面)
与我1#楼所发原贴的改动之处有:
(1)去掉了Autoexec.bat中的如下三行语句:
--------------------------------------------------------
ren tool.ex_ tool.exe
tool.exe
deltree /y %RAMD%:\tool.exe
-------------------------------------------------------
正确的Autoexec.bat为:
---------------------------------------------------------
@ECHO OFF
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:\
path=%RAMD%:\;a:\;%CDROM%:\
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
:EXT
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
echo The diagnostic tools were successfully loaded to drive %RAMD%.
echo.
%RAMD%:
cls
echo.
echo.
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%
call %ramd%:\qf.bat
-------------------------------------------------------------------
(2)qf.bat与我的相同:即
-------------------------------------------------------------------
@echo off
%CDROM%:
cd tools
ghost.exe -rb -sure -clone,mode=pload,src=system.gho:1,dst=1:1
-------------------------------------------------------------------------------------
(3)ebd.cab中的config.sys,18#楼所说提到的与我的原作完全相同。即:
-------------------------------------------------------------------------------------
device=himem.sys /testmemff
device=oakcdrom.sys /D:mscd001
files=10
buffers=10
dos=high,umb
stacks=9,256
devicehigh=ramdrive.sys /E 2048
lastdrive=z
-------------------------------------------------------------------------------------
(4)将qf.bat直接添加如ebd.cab中:
而我的原作法是:将qf.bat使用winrar压缩成可在dos自释放的tool.exe文件然后改名(为了在计算机在光盘的虚拟环境中好找)为"tool.ex_",大家仔细看我的原autoexec.bat的内容中这三行(也就是18楼删掉的那三行内容)即:
---------------------------------------------------------------------
ren tool.ex_ tool.exe
tool.exe
deltree /y %RAMD%:\tool.exe
---------------------------------------------------------------------
我使用这句
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
然后在/%RAMD%/中利用上面那三行命令把tool.ex_名子改回为tool.exe,由于tool.exe为dos自释放文件,Autoexec.bat中这句
-----------------------------------------------------------------------
tool.exe
-----------------------------------------------------------------------
达到了释放qf.bat的目的,最后我在Autoexec.bat中末尾使用:
call %ramd%:\cd_c.bat
调用在%ramd%:下所释放的qf.bat,从而运行了光盘根目录下tools文件夹内ghost和system.gho的自动恢复程序。
到这里我的问题基本解决,同时也得出了如下的
【结论:】
其一,1楼(原始帖子)和18楼中的批处理中路径是没有错误的;
其二,语法没有问题。
【问题:】
其一,为什么Autoexec.bat中的那三句,即:
------------------------------------------------------------
ren tool.ex_ tool.exe
tool.exe
deltree /y %RAMD%:\tool.exe
--------------------------------------------------------------
在句中没有起到作用?从第一张截图来看,并不是没有加载到光驱,而是qf.bat根本没有运行,或者说tool.ex_改名为tool.exe后,经过运行,并没有释放出来到%RAMD%下。是不是语句的问题,我想应该不会是,因为我1#楼发的帖子只是在曾经成功进行“恢复光盘根目录下的ghost.exe和system.gho”的img中改了一下qf.bat的内容而已,原来成功的例子我罗列如下:
目标:实现恢复光盘根目录下的ghost.exe和system.gho(是根目录,不是在根目录某个文件夹内)
Autoexec.bat内容:
----------------------------------------------------------------
@ECHO OFF
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:\
path=%RAMD%:\;a:\;%CDROM%:\
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
:EXT
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
echo The diagnostic tools were successfully loaded to drive %RAMD%.
echo.
%RAMD%:
ren tool.ex_ tool.exe
tool.exe
deltree /y %RAMD%:\tool.exe
cls
echo.
echo.
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%
call %ramd%:\qf.bat
-------------------------------------------------------------------------
qf.bat的内容为:
-------------------------------------------------------------------------
@echo off
%CDROM%:
CD tools (该行替换成cd\tools也可以)
Ghost -clone,mode=pload,src=system.gho:1,dst=1:1 -sure -rb
----------------------------------------------------------------------------
config.sys的内容为:
----------------------------------------------------------------------------
device=himem.sys /testmemff
device=oakcdrom.sys /D:mscd001
files=10
buffers=10
dos=high,umb
stacks=9,256
devicehigh=ramdrive.sys /E 2048
lastdrive=z
------------------------------------------------------------------------
其中qf.bat同原贴中相同,先处理成在dos可以自释放的tool.exe文件,然后改名为tool.ex_ ,最后加入到ebd.cab中。
其二,我发出1楼的帖子的 问题,是在上面这个成功的基础上稍微改动了一下的,仅仅是 想把ghost.exe和system.gho放在光盘根目录下并在Autoexec.bat中调用批处理而已,我想上面的这个都成功了,对qf.bat中的语句添加几句命令就可以,为什么有如此大的差别?甚至没有通过!
被18#楼删掉Autoexec.bat中的三个命令行,并直接把qf.bat植入ebd.cab中就可以成功了!看来我的qf.bat变成tool.ex_和tool.exe在dos下顺利自释放这两个环节有小问题,如果为了探究我得弄明白错在哪里,既然大家把我的问题给我缩小到这个份上,我得好好再查查!在这里要感谢18#楼和22#楼的朋友,还要感谢来我的帖子中为我排忧解难的朋友们!再次感谢!我想后面的时间再仔细测试一下22#楼提到的思路,并公布复试结果!
[ 本帖最后由 q8q8feng 于 2006-11-7 04:40 PM 编辑 ] |
-
2.jpg
(10.13 KB, 下载次数: 62)
18#楼测试结果附图二
-
3.jpg
(60.75 KB, 下载次数: 63)
18#楼测试结果附图三
|