无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 10309|回复: 30
打印 上一主题 下一主题

[已解决]探究img中的autoexec.bat调用批处理来运行光盘上ghost映像文件

[复制链接]
跳转到指定楼层
1#
发表于 2006-11-5 22:55:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
:handshake论坛上发过很多有关ghost的光盘自动恢复系统,结合网上很多资料,还有其它论坛的说法,讨论一下调用批处理来运行光盘上的ghost映像文件:当然方法很多,但是在下列情况下调用经多次测试却始终不能成功,愿与大家分享测试结果,并希望得到老毛桃等无忧元老的指点,请看:
     标题:制作ghost光盘恢复系统(这里是将光盘上的ghost万能映像恢复到硬盘第一分区c);
     思路:在autoexec.bat中调用批处理来运行光盘根目录tools文件夹下 的ghost映像文件;
     测试环境: VM WARE5.5 (装有windowxp sp2)
     使用软件:ULtra ISO8.0   Winimage  EZBOOT或aero studio 2006;
     使用img:     cd_c.img 该映像文件为:将光盘根目录下tools文件夹内的ghost万能映像恢复到硬盘第一分区c;
     引导运行过程:系统从光盘启动,进入界面,运行菜单“ghost 自动恢复系统到c分区”(ezboot中的菜单命令:run cd_c.img),激活run cd_c.img命令后,dos下优先运行cd_c.img中的autoexec.bat,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是用来运行光盘根目录下文件夹内的ghost.exe及system.gho文件的,qf.bat的内容为:
@echo off
%CDROM%:
CD tools (该行替换成cd\tools也可以)
Ghost -clone,mode=pload,src=system.gho:1,dst=1:1 -sure -rb
---------------
autoexec.bat优先运行并在语句末使用call命令调用qf.bat,qf.bat运行就开始运行其中的ghost命令行,这样的情况我进行了多次测试,始终不能成功。但如果把ghost.exe和system.gho放在光盘根目录下并将qf.bat改为:
---------------
@echo off
%CDROM%:\ghost.exe -rb -sure -clone,mode=pload,src=%CDROM%:\system.gho:1,dst=1:1
---------------
就可以成功恢复了,我很不明白为什么将ghost和system.gho放在光盘根目录下的文件夹tools内,就不能成功运行ghost进行自动恢复呢?甚至还没有运行ghost就中止了。

      请大家帮我看看这种情况的出现是不是我如上的语法写的不对,到底 是什么原因第一种情况不能成功,我也研习过老毛桃和雨木林风、红叶的工具光盘,在AUTOEXEC.BAT中不使用调用命令也可以做各式各样的恢复,但就不明白这种情况出错的原因,需要补充的是,同样的使用上面的第一种方法,ghost以外的软件都很适用哦!
     大家看看,尤其请提出意见,按照老毛桃说的,我很不愿提出一些论坛提了好多次的问题,但是我做数据恢复工程很久以来遇到了这个问题检查了好多遍,也试了很多次,终未找出原因,请各位不吝指教,为谢!


[ 本帖最后由 q8q8feng 于 2006-11-8 01:22 PM 编辑 ]
2#
发表于 2006-11-6 02:12:20 | 只看该作者
原帖由 q8q8feng 于 2006-11-5 10:55 PM 发表
其中qf.bat是用来运行光盘根目录下文件夹内的ghost.exe及system.gho文件的,qf.bat的内容为:
◎echo off
%CDROM%:
CD tools (该行替换成cd\tools也可以)
Ghost -clone,mode=pload,src=system.gho:1,dst=1:1 -sure -rb
---------------
autoexec.bat优先运行并在语句末使用call命令调用qf.bat,qf.bat运行就开始运行其中的ghost命令行,这样的情况我进行了多次测试,始终不能成功


始终不能成功的现像是什么?是ghost.exe都找不到,报错误命令?还是ghost运行起来后找不到镜像文件?把详细说清楚了。

明显你后面因为加了绝对路径就成功了,而我引用的这段只是用了默认路径,错误出在哪里,显而易见。
回复

使用道具 举报

3#
发表于 2006-11-6 10:00:55 | 只看该作者
CD tools
这里可能有问题,转到光盘后,可能不是根目录该为:

%CDROM%:
cd \
cd tools

或使用路径试试:

%CDROM%:\tools\Ghost.exe -clone,mode=pload,src=%CDROM%:\tools\system.gho:1,dst=1:1 -sure -rb
回复

使用道具 举报

4#
发表于 2006-11-6 12:38:03 | 只看该作者
"%CDROM%:"可能就有问题,%CDROM%是环境变量,不能这样当命令用,只可以当命令的参数。
autoexec.bat中":EXT"下第四行"%RAMD%:"也属这类错误吧。
回复

使用道具 举报

5#
 楼主| 发表于 2006-11-6 13:07:50 | 只看该作者
原帖由 q8q8feng 于 2006-11-5 10:55 PM 发表
......需要补充的是,同样的使用上面的第一种方法,ghost以外的软件都很适用哦!
这句话才是问题的关键,我也考虑过路径问题,但是我上面的两种路径使用在其它的软件运行中,用同样的方法却可以成功,这就是我不明白的地方,我想不应该是 路径的问题,难道ghost自动恢复命令有更为严格的路径限制?

原帖由 s210603 于 2006-11-6 10:00 AM 发表
CD tools
这里可能有问题,转到光盘后,可能不是根目录该为:

%CDROM%:
cd \
cd tools

或使用路径试试:

%CDROM%:\tools\Ghost.exe -clone,mode=pload,src=%CDROM%:\tools\system.gho:1,dst=1:1 -su ...

这位朋友帖子所提到的路径我都试用过:
%CDROM%:
cd tools
Ghost.exe -clone,mode=pload,src=system.gho:1,dst=1:1 -su ...

%CDROM%:
cd \
cd tools
Ghost.exe -clone,mode=pload,src=system.gho:1,dst=1:1 -su ...

%CDROM%:\tools\Ghost.exe -clone,mode=pload,src=%CDROM%:\tools\system.gho:1,dst=1:1 -su ...都不能测试成功,测试出现错误画面见附件。

我对上面两位朋友提出的问题进行重新测试,不能通过测试,我觉得你们提到的路径都没有错,为什么使用在除了GHOST自动恢复以外的软件上时候,一切正常,对于ghost的自动恢复都不能成功呢?我只想能明白缘由,至于ghost的自动恢复我也做得很多img,但是 这种情况下我真得很茫然,请各位出出意见和建议,我都会将测试结果公布上来,谢谢!

[ 本帖最后由 q8q8feng 于 2006-11-6 01:21 PM 编辑 ]

1.jpg (12.85 KB, 下载次数: 86)

测试出现错误画面

测试出现错误画面
回复

使用道具 举报

6#
发表于 2006-11-6 14:38:38 | 只看该作者
@ECHO OFF
PROMPT $P$G
LH SMARTDRV.EXE
LH DOSKEY.COM
LH MOUSE.COM
path=%RAMD%:\;%CDROM%:\;%CDROM%:\PQPM;%CDROM%:\GHOST;A:\;C:\;
MSCDEX.EXE /D:MSCD000 /L:Z
Z:
CD GHOST
pause
GHOST -clone,mode=pload,src=c:\winxpsp2.gho,dst=1:1 -sure –rb
IF NOT EXIST %CDROM%:\ghost\winxpsp2.gho GOTO QUIT
GOTO BOOT

:BOOT
CD PQPM
PQMAGIC.EXE
GOTO END

:QUIT
%RAMD%:
CD \
GOTO END

:END
这是我用的,你看看合用吗?
回复

使用道具 举报

7#
发表于 2006-11-6 15:14:31 | 只看该作者
call %ramd%:\qf.bat

你的RAM盘上有这个文件吗?

你可以常试把GHOST.EXE复制到RAM DISK上运行,这样,可以减少GHOST.EXE出错的机会,有时GHOST需要写盘。
回复

使用道具 举报

8#
发表于 2006-11-6 15:29:17 | 只看该作者
嘿嘿,将你的qf.bat命令改为手动逐条输入,就能看到问题到底出在何处了。
回复

使用道具 举报

9#
 楼主| 发表于 2006-11-6 16:11:49 | 只看该作者
原帖由 李其 于 2006-11-6 02:38 PM 发表
@ECHO OFF
PROMPT $P$G
LH SMARTDRV.EXE
LH DOSKEY.COM
LH MOUSE.COM
path=%RAMD%:\;%CDROM%:\;%CDROM%:\PQPM;%CDROM%:\GHOST;A:\;C:\;
MSCDEX.EXE /D:MSCD000 /L:Z
Z:
CD GHOST
pause
GHOST -clone, ...

    真得谢谢你,不过我想通过批处理来运行光盘根目录文件夹内的ghost.exe及system.gho,既然同样的方法都可以运行诸如EDIT.COM等程序,为什么ghost不能通过。我有写过通过批处理来运行光盘根目录下的ghost.exe及system.gho,也写过不通过批处理运行光盘根目录下或根目录某个文件夹下的ghost自动恢复的img,都能成功,但是在这里使用批处理来运行光盘根目录下的tools文件夹内的ghost及其映像文件时,遇到瓶颈,既然像我开头写的那样,一般的软件运行都能成功,但是ghost的自动恢复为什么放在光盘根目录下的文件夹内就不能成功呢!?我想ghost的自动恢复在autoexec.bat中使用call qf.bat来达到运行光盘根目录下tools文件夹内的ghost及其映像文件,应该有特别的要求。

[ 本帖最后由 q8q8feng 于 2006-11-6 04:14 PM 编辑 ]
回复

使用道具 举报

10#
发表于 2006-11-6 16:21:40 | 只看该作者
我也感觉是%cdrom%的用法有问题? 

autoexec.bat 加上这条
MSCDEX.EXE /D:MSCD000 /L:Z

qt.bat如下
Z:
CD GHOST
pause
GHOST -clone, ...
回复

使用道具 举报

11#
发表于 2006-11-6 16:32:51 | 只看该作者
难道你自己没有发现很多错误吗?

比如:GHOST命令行的“*.gho“源文件路径

建议你还是用别人做的img来对比学习一下的好!
回复

使用道具 举报

12#
 楼主| 发表于 2006-11-6 16:39:11 | 只看该作者
设置信息:光盘下建有tools文件夹,ghost.exe及其映像文件system.gho放在tools文件夹内。
使用的img:  cd_c.img ,其中qf.bat根据3楼的提示,其内容为:
---------------------------------------------------
@echo off
%CDROM%:\tools\Ghost.exe -clone,mode=pload,src=%CDROM%:\tools\system.gho:1,dst=1:1 -sure -rb
---------------------------------------------------
原理:利用autoexec.bat中的语句“call qf.bat”来达到运行光盘上tools文件夹内的ghost.exe及其system.gho进行自动恢复,恢复到c区(第一分区)。
要点:ghost.exe及其映像文件system.gho放在tools文件夹内.

干扰:为什么把ghost.exe及其system.gho直接放在光盘根目录下,稍微改qf.bat内容为:
---------------------------------------------------
@echo off
%CDROM%:\ghost.exe -rb -sure -clone,mode=pload,src=%CDROM%:\system.gho:1,dst=1:1
---------------------------------------------------
就可以。
问题:到底是不是qf.bat中的路径的问题,既然路径有问题,我测试了一下,那为什么同样的方法,运行光盘根目录下tools文件内的edit.com程序很顺利,这里将qf.bat稍微修改为

---------------------------------------------------
@echo off
%CDROM%:
cd tools
edit.com
----------------------------------------------------

edit.com程序运行成功。
    为什么对于GHOST和其映像文件system.gho,使用调用批处理的方法,且将ghost.exe和system.gho放在光盘根目录下的tools文件夹内就会出现问题。

声明:我不使用批处理也可以做出来,使用批出理可以作出ghost.exe和system.gho放在光盘根目录下的情况,但是为什么ghost.exe和system.gho放在光盘根目录下,修改相应路径却不可以。

[ 本帖最后由 q8q8feng 于 2006-11-6 04:50 PM 编辑 ]
回复

使用道具 举报

13#
发表于 2006-11-6 17:03:55 | 只看该作者
ghost 的 src 路径

难道你认为 ghost 知道了已经进入 ”cd tools“目录?所以源路径也就省去?
回复

使用道具 举报

14#
 楼主| 发表于 2006-11-6 17:11:49 | 只看该作者
原帖由 jasonwang 于 2006-11-6 04:21 PM 发表
我也感觉是%cdrom%的用法有问题? 

autoexec.bat 加上这条
MSCDEX.EXE /D:MSCD000 /L:Z

qt.bat如下
Z:
CD GHOST
pause
GHOST -clone, ...

这种情况我下午测试不能成功.
回复

使用道具 举报

15#
 楼主| 发表于 2006-11-6 17:14:30 | 只看该作者
原帖由 xypcmac 于 2006-11-6 05:03 PM 发表
ghost 的 src 路径

难道你认为 ghost 知道了已经进入 ”cd tools“目录?所以源路径也就省去?

在使用中我也加了原路径,但未能成功。
如下:
%CDROM%:\tools\Ghost.exe -clone,mode=pload,src=%CDROM%:\tools\system.gho:1,dst=1:1 -sure -rb
还有我需要问的是:其它软件的调用都很正常,那就不是路径的问题,要么ghost对于路径更严格?

[ 本帖最后由 q8q8feng 于 2006-11-6 05:15 PM 编辑 ]
回复

使用道具 举报

16#
发表于 2006-11-6 20:27:17 | 只看该作者
原帖由 q8q8feng 于 2006-11-6 04:39 PM 发表
问题:到底是不是qf.bat中的路径的问题,既然路径有问题,我测试了一下,那为什么同样的方法,运行光盘根目录下tools文件内的edit.com程序很顺利,这里将qf.bat稍微修改为

---------------------------------------------------
@echo off
%CDROM%:
cd tools
edit.com
----------------------------------------------------

edit.com程序运行成功。
    为什么对于GHOST和其映像文件system.gho,使用调用批处理的方法,且将ghost.exe和system.gho放在光盘根目录下的tools文件夹内就会出现问题。


不知道你做的实验是否严密,你在把edit.com放在光盘的tools目录下时,有没有把虚拟软驱即ramd里的edit.com给删除掉呢?因为如果你没有删除掉其他edit.com的话,即使你用批处理进入到光盘tools目录下去执行实际上不能执行的edit.com的话,edit.com也能被执行起来,因为运行起来的edit.com不是来自光盘tools目录下,而是可能来自%ramd%下。请先确保这点,再说一般程序能够执行成功。

原帖由 q8q8feng
这位朋友帖子所提到的路径我都试用过:
%CDROM%:
cd tools
Ghost.exe -clone,mode=pload,src=system.gho:1,dst=1:1 -su ...

%CDROM%:
cd \
cd tools
Ghost.exe -clone,mode=pload,src=system.gho:1,dst=1:1 -su ...

%CDROM%:\tools\Ghost.exe -clone,mode=pload,src=%CDROM%:\tools\system.gho:1,dst=1:1 -su ...


看到你的附件图片,以上批处理运行的结果都是光驱驱动被成功加载后(F盘),光标都停在E盘吗?即根本不认识%cdrom%这个变量咯?

那以上的命令直接写进autoexec.bat里运行的话,也会产生同样的错误吗?我忘了在主批处理文件中已经定义好的环境变量是不是需要在被其调用的子批处理文件中再次定义一遍。

原帖由 q8q8feng
[quote]原帖由 jasonwang 于 2006-11-6 04:21 PM 发表
我也感觉是%cdrom%的用法有问题? 

autoexec.bat 加上这条
MSCDEX.EXE /D:MSCD000 /L:Z

qt.bat如下
Z:
CD GHOST
pause
GHOST -clone, ...

这种情况我下午测试不能成功. [/quote]

你说话还真是笼统阿,不成功不成功的。是和上面一样-光驱被加载到Z盘后,但光标只能停在E盘吗?即不能批处理进入Z盘及其运行后面的所有步骤?麻烦以后你的出错结果能不能详细一些,否则别人怎么帮你。
有没有试过,只在qt.bat中只随便写上一句,如a:回车。然后自己在其运行完成后手动运行Z:回车;cd ghost的,看看倒底哪一步出了问题。

[ 本帖最后由 refrainblue 于 2006-11-6 08:46 PM 编辑 ]
回复

使用道具 举报

17#
 楼主| 发表于 2006-11-7 01:01:20 | 只看该作者
:(:):handshake 16# 楼的朋友,光驱是停在E盘的,在此时可以使用手动进入到TOOLS文件夹内,利用手动运行GHOST进行恢复。其次为了测试我主题讨论的思路是否正确,我做EDIT.COM的测试的时候仔细检查了所有文件,去掉了其它部分的EDIT.COM,根据开始的思想做了edit.img,然后把edit.com放在ezboot的disk1下的tools文件夹内,运行的时候在dos下启动了edit程序,因为论坛里大于1M的edit.img的附件不能直接上传,所以我只有描述了。
       另外,我使用的测试软件是VMWARE,装有XP sp2系统,分有C和D两个分区,e盘是光驱所在盘符。我在使用EZBOOT做好ISO光盘映像文件后,在VMWARE中将光驱启动设置为“使用ISO映像文件”,启动VMWARE,EDIT.COM的调用成功进入到了EDIT的程序界面,但是同样的方法(我在1#楼讨论的思路)GHOST的自动恢复不能实现,出现我前面的附件画面。
不知哪位能够根据我的主题写一个完整的IMG,我好对比一下,因为大家在为我出谋划策,大家提出的整改意见,我都认真一一测试了的。(我的机器的软件比较全,测试很方便的)


[ 本帖最后由 q8q8feng 于 2006-11-7 01:05 AM 编辑 ]
回复

使用道具 举报

18#
发表于 2006-11-7 03:15:34 | 只看该作者
看来问题或许是出在你的ezboot身上 啊
以下是我替你做的实验

1。拿出一张完整的98se启动盘img镜像,将autoexec.bat替换成你一楼的内容(只去掉了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
-------------------------------------------------------------------------------------------

将qf.bat添加到ebd.cab(qf.bat内容完全是你一楼的内容即你失败的,不加光驱路径的那4行内容)。
qf.bat内容如下:
-----------------------------------
@echo off
%CDROM%:
CD tools
Ghost -clone,mode=pload,src=system.gho:1,dst=1:1 -sure -rb
--------------------------------------------------------------------------------

修改config.sys为下面内容:
---------------------------------------------
device=himem.sys /testmem:off
device=oakcdrom.sys /D:mscd001
files=10
buffers=10
dos=high,umb
stacks=9,256
devicehigh=ramdrive.sys /E 2048
lastdrive=z
-------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------
这样就完成了一张98se的启动软盘的镜像。取名为98boot.img

2。ultraISO创建一张光盘镜像,并将tools目录添加在其中。tools目录中有ghost.exe,将光盘取名为98ghost.iso

3.用aero studio 2007创建一个启动光盘。创建“自动ghost恢复”按钮,执行命令为 run (cd)/img/98boot.img,最后配置到光盘,取名为ghost.iso

至此准备工作结束,下面开始试验。
---------------------------------------------------------------------------------------------------------------------------------------------------
试验1。

用ultraiso打开98ghost.iso把98boot.img载入引导区,使98ghost.iso成为可引导光盘。
用vmware以98ghost.iso引导启动。由于虚拟硬盘没有格式化,故结果c盘是虚拟软驱ramd,D盘是光驱。tools下的ghost成功启动

试验2

用ultraiso打开aero studio2007创建的 ghost.iso,添加以下2个文件夹:
tools文件夹,文件夹中有ghost.exe
img文件夹,文件夹中有98boot.img
保存ghost.iso
用vmware加载ghost.iso启动。进入aero图形画面,选择“自动ghost恢复”。结果和试验1一样,ghost能够自动被运行

-----------------------------------------------------------------------------------------------------------------------------------------------------
总结:你的批处理没有问题。问题可能可能出在ezboot上面。我的试验没有做到最后一步即做个gho文件验证到最后,但是既然我想ghost已经成功启动的话,只要gho文件放在和ghost.exe相同目录下,不写绝对路径也绝对可以执行的。

[ 本帖最后由 refrainblue 于 2006-11-7 03:29 AM 编辑 ]
回复

使用道具 举报

19#
发表于 2006-11-7 08:07:09 | 只看该作者
18#,既然"批处理没有问题。问题可能可能出在ezboot上面",能否在深入研究一下EZBOOT为什么出错呢?
我想LZ的提问和你的试验,都有助于问题的解决.
本人为你严谨的治学精神感动
回复

使用道具 举报

20#
发表于 2006-11-7 11:01:30 | 只看该作者
实践证明,你的%cdrom%用法是错误的。
回复

使用道具 举报

21#
发表于 2006-11-7 11:21:36 | 只看该作者
原帖由 fengre 于 2006-11-7 08:07 AM 发表
18#,既然"批处理没有问题。问题可能可能出在ezboot上面",能否在深入研究一下EZBOOT为什么出错呢?
我想LZ的提问和你的试验,都有助于问题的解决.
本人为你严谨的治学精神感动


我从没用过ezboot,既然楼主在一楼也说可用aero studio了,那我自然用我会的作试验咯

原帖由 jasonwang 于 2006-11-7 11:01 AM 发表
实践证明,你的%cdrom%用法是错误的。


他的%cdrom%用法是错误的话,那我的试验是怎么成功的?正是实践证明他的%cdrom%用法是正确的。请问你能不能提出你认为正确的用法呢?
回复

使用道具 举报

22#
发表于 2006-11-7 11:42:50 | 只看该作者
autoexec.bat
@ECHO OFF
CLS
SET PROMPT=$P$G
SET TEMP=C:\
SET TMP=C:\
SET RAMD=Y:
xmsdsk.exe 20480 %RAMD% /y /t
GOTO %config%
:CDROM
PATH=A:\;C:\;C:\WINDOWS;C:\WINDOWS\COMMAND
LH SMARTDRV.EXE 20480
LH MSCDEX.EXE /D:MSCD000 /L:z
LH DOSKEY.COM
LH MOUSE.COM
call a.bat

a.bat
z:
cd tools
ghost82.exe

如果把Z改成%cdrom%,没有成功,我手头只有EZ测试。
回复

使用道具 举报

23#
发表于 2006-11-7 12:01:27 | 只看该作者
原帖由 jasonwang 于 2006-11-7 11:42 AM 发表
如果把Z改成%cdrom%,没有成功,我手头只有EZ测试。


如果。。。。。,没有成功
你是测了还是没测?没测的话,等待你的测试结果。

不过要知道我的试验中,我将他的批处理与微软的结合起来,减少了不必要的干扰因素。如果是错的话,那也是他的批处理错,决不会是微软错。更何况结果是正确的,试验室成功的。那就更说明他的批处理写法是正确的,所以我的试验更具可信性
而你已经自己改动过批处理文件了,再去配上他的批处理,出现问题的可能性要比和微软来的大,自然证明他的批处理写法是错误的可信度要低很多。
回复

使用道具 举报

24#
发表于 2006-11-7 12:59:17 | 只看该作者
我是测试过的结果。
回复

使用道具 举报

25#
 楼主| 发表于 2006-11-7 13:12:01 | 只看该作者
22#楼的朋友,你的a.bat放在哪里了,光盘根目录下吧,我看你不是将a.bat添加到ebd.cab中的,请指点明白一下,我好测试。
18#楼、22楼的朋友你们提出的我都会仔细测试一下,如果都正确,我会提炼出一个可以使用的完整的结果并给大家公布,再此感谢,我得马上投入测试了。

[ 本帖最后由 q8q8feng 于 2006-11-7 03:12 PM 编辑 ]
回复

使用道具 举报

26#
 楼主| 发表于 2006-11-7 14:57:58 | 只看该作者
现在先公布一下按照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#楼测试结果附图二

18#楼测试结果附图二

3.jpg (60.75 KB, 下载次数: 63)

18#楼测试结果附图三

18#楼测试结果附图三
回复

使用道具 举报

27#
发表于 2006-11-7 17:34:10 | 只看该作者
刚才测试了,%CDROM%用法,没有问题,是我搞错了,是你的批处理有问题,另外用EZ也可以制作成功。
回复

使用道具 举报

28#
 楼主| 发表于 2006-11-7 18:19:40 | 只看该作者
原帖由 jasonwang 于 2006-11-7 05:34 PM 发表
刚才测试了,%CDROM%用法,没有问题,是我搞错了,是你的批处理有问题,另外用EZ也可以制作成功。

        朋友们在帖子里提出的建议我尽量一一做了测试,同时我返回去又对自己在开始公布的内容做了小修改,仅仅只改了Autoexec.bat中的那三句,将其删除,并且将我的批出理qf.bat直接植入ebd.cab,其它均没有变,然后使用ezboot再试,成功!
    我的qf.bat批处理没有问题的,因为这次的测试中,我没有改动它;另外可以确认Autoexec.bat语法也没有问题,因为,我不改动它的内容,将qf.bat中的语句修改一下:
————————————————————
@echo off
%CDROM%:\ghost.exe -rb -sure -clone,mode=pload,src=%CDROM%:\system.gho:1,dst=1:1
————————————————————
重新测试,测试成功,可以制作放在光盘根目录下的ghost.exe和system.gho的自动恢复。


[ 本帖最后由 q8q8feng 于 2006-11-7 06:22 PM 编辑 ]
回复

使用道具 举报

29#
发表于 2006-11-7 19:46:14 | 只看该作者
原帖由 q8q8feng 于 2006-11-7 02:57 PM 发表
从第一张截图来看,并不是没有加载到光驱,而是qf.bat根本没有运行,或者说tool.ex_改名为tool.exe后,经过运行,并没有释放出来到%RAMD%下。


我去掉tool.exe时就在想你这程序是干什么用的,还要费那么多事,先改名再运行再删除的。原来是单独释放QF.bat用的。。。。。。感觉完全是多出来的三行嘛,把QF.bat并入同样是要释放到虚拟软驱的ebd.cab不就得了,话说回来qf.bat,那么小个批处理是该放在根目录下,少步环节少出错嘛。我都不把setramd.bat等批处理放进压缩包的,进压缩包的只有大个的dos程序而已。

结果是用winrar创建的tools.exe不能自解压到虚拟软驱?为保持兼容还是打cab包用extract释放吧。
回复

使用道具 举报

30#
 楼主| 发表于 2006-11-8 13:21:40 | 只看该作者
是的,应该是用winrar创建的tools.exe不能正常自解压到虚拟软驱,问题也只能是这个节点了。同意你的建议,为保持兼容还是打cab包用extract释放,少步环节少出点错。真得谢谢你和所有在这里帮助我的朋友们了!

[ 本帖最后由 q8q8feng 于 2006-11-8 01:26 PM 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-9-6 13:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表