Board logo

标题: 系统恢复光盘自动批处理公开代码 [打印本页]

作者: jinlizhpc     时间: 2007-6-15 15:28    标题: 系统恢复光盘自动批处理公开代码

本人做了一个GHOST系统恢复光盘,autoexec.bat批处理文件如下:
@echo off
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
path=a:\;z:\
mscdex /d:mscd001 /l:z
if exist d:\sysbak\xp.gho
ghost.exe -clone,mode=pload,src=d:\sysbak\sxp.gho:1,dst=1:1 -sure
echo            ===================OK===================
echo.
echo.
echo.
IF NOT EXIST d:\sysbak\XP.gho
echo      对不起,恢复文件不存在


问题:XP.GHO文件不存在依然运行GHOST.EXE,不单独显示"对不起,恢复文件不存在" 错在那里?请指教系统恢复光盘自动批处理公开代码

[ Last edited by jinlizhpc on 2007-6-18 at 01:09 PM ]
作者: wudixin96     时间: 2007-6-15 15:42

@echo off
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
path=a:\;z:\
mscdex /d:mscd001 /l:z
if exist d:\sysbak\xp.gho (
ghost.exe -clone,mode=pload,src=d:\sysbak\sxp.gho:1,dst=1:1 -sure
echo            ===================OK===================
echo.
echo.
echo.
) else (
echo      对不起,恢复文件不存在)
ELSE 子句必须在 IF 之后出现在同一行上。例如:

    IF EXIST filename. (
        del filename.
    ) ELSE (
        echo filename. missing.
    )

因为 del 命令需要用一个新行终止,以下子句不会有效:

IF EXIST filename. del filename. ELSE echo filename. missing

由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也
不会有效:

    IF EXIST filename. del filename.
    ELSE echo filename. missing

如果都放在同一行上,以下子句有效:

    IF EXIST filename. (del filename.) ELSE echo filename. missing
作者: jinlizhpc     时间: 2007-6-15 15:46
()也要用上吗?
作者: wudixin96     时间: 2007-6-15 15:53
当然,要不那就不是一行代码了。
作者: jinlizhpc     时间: 2007-6-15 16:28
不行,XP.GHO文件不存在依然运行GHOST.EXE,不单独显示"对不起,恢复文件不存在"
作者: wudixin96     时间: 2007-6-15 16:35
那直接测试
if exist d:\sysbak\xp.gho (
echo 文件存在
) else (
echo      对不起,文件不存在
)
的结果是怎么样的?
作者: jinlizhpc     时间: 2007-6-15 16:48
再写一个也不行,唉.........晕

@ECHO OFF
IF "%config%"=="QUICK" GOTO QUICK
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
path=a:\;%CDROM%:\
mscdex /d:mscd001 /l:%CDROM%

:ghost
IF EXIST d:\sysbak\zhpc.pan GOTO EXT

:EXT
ren d:\sysbak\zhpc.pan sysbak.gho
ghost.exe -clone,mode=pload,src=d:\sysbak\sysbak.gho:1,dst=1:1 -sure
ren d:\sysbak\sysbak.gho zhpc.pan
tw/np
cls
echo.

echo     OK! 系统恢复成功
echo.


IF "%config%"=="NOCD" GOTO QUIT

IF ERRORLEVEL 1 SET CDPROB=1

GOTO QUIT

:QUIT
echo     没有恢复文件
set CDPROB=
set CDROM=
set LglDrv=
GOTO QUICK

:QUICK
作者: jinlizhpc     时间: 2007-6-15 17:22    标题: 谁可以修改?

谁可以修改?
作者: jinlizhpc     时间: 2007-6-16 10:46    标题: 没有人可以解决问题吗?

没有人可以解决问题吗?
作者: sfencer     时间: 2007-6-16 11:03
我也不知道,关注一一
作者: zh159     时间: 2007-6-16 11:56
思路混乱

  Quote:
:ghost
IF EXIST d:\sysbak\zhpc.pan GOTO EXT这里d:\sysbak\zhpc.pan存不存在都会接着执行EXT部分

:EXT
ren d:\sysbak\zhpc.pan sysbak.gho
ghost.exe -clone,mode=pload,src=d:\sysbak\sysbak.gho:1,dst=1:1 -sure
ren d:\sysbak\sysbak.gho zhpc.pan
tw/np
cls
echo.

echo     OK! 系统恢复成功
echo.


IF "%config%"=="NOCD" GOTO QUIT

IF ERRORLEVEL 1 SET CDPROB=1

GOTO QUIT
上边的执行完了,每个跳转都跳到这里,变成“OK! 系统恢复成功”、“没有恢复文件”都会显示
:QUIT
echo     没有恢复文件
set CDPROB=
set CDROM=
set LglDrv=
GOTO QUICK

:QUICK

按你的思路估计是改成:

  Quote:
:ghost
IF not EXIST d:\sysbak\zhpc.pan GOTO QUICK
ren d:\sysbak\zhpc.pan sysbak.gho
ghost.exe -clone,mode=pload,src=d:\sysbak\sysbak.gho:1,dst=1:1 -sure
ren d:\sysbak\sysbak.gho zhpc.pan
tw/np
cls
echo.

echo     OK! 系统恢复成功
echo.


IF "%config%"=="NOCD" GOTO QUICK

IF ERRORLEVEL 1 SET CDPROB=1

GOTO QUICK

:QUIT
echo     没有恢复文件
set CDPROB=
set CDROM=
set LglDrv=

:QUICK


作者: jinlizhpc     时间: 2007-6-18 11:33
系统恢复光盘自动批处理改编成功!并且验证通过,现在公开代码给大家分享

AUTOEXEC.BAT

@ECHO OFF
SET DIRCMD=/O:N
cls
mscdex /d:mscd001 /l:z
path=a:\;z:\

tw /np /nm /nw >nul
cls

:ERROR
IF EXIST d:\sysbak\zhpc.pan GOTO EXT
echo.
echo.
echo.
echo.
echo                        抱歉:不能恢复系统
echo.
echo          原因:你不是授权用户/或者系统恢复文件被破坏
echo.
echo.
echo.
GOTO QUIT

:EXT
tw /q
cls
ren d:\sysbak\zhpc.pan sysbak.gho
ghost.exe -clone,mode=pload,src=d:\sysbak\sysbak.gho:1,dst=1:1 -sure
ren d:\sysbak\sysbak.gho zhpc.pan
tw/np
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo     OK! 系统恢复成功,请取走光盘! 同时按下Ctr+Alt+Del键重新启动电脑。
echo.
echo.
echo                  如有疑问,请技术交流  QQ:627216048
echo.
echo.
echo            ===================2007-&-2008===================
echo.
echo.
echo.
Ej.exe

:QUIT

[ Last edited by jinlizhpc on 2007-6-18 at 01:07 PM ]
作者: sgzhou6688     时间: 2010-5-18 13:10
感谢,顶一下》》》》》》》》》》》》》》》》
作者: sgzhou6688     时间: 2010-5-22 17:50
但是,有些问题,如何是像F11或者F10那样能
调用相关的程序》》》》》》》》》》》》》》