中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 系统恢复光盘自动批处理公开代码
作者:
标题: 系统恢复光盘自动批处理公开代码 上一主题 | 下一主题
jinlizhpc
初级用户




积分 165
发帖 74
注册 2007-1-8
状态 离线
『楼 主』:  系统恢复光盘自动批处理公开代码

本人做了一个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 ]

2007-6-15 15:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  


@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

2007-6-15 15:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jinlizhpc
初级用户




积分 165
发帖 74
注册 2007-1-8
状态 离线
『第 3 楼』:  

()也要用上吗?

2007-6-15 15:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 4 楼』:  

当然,要不那就不是一行代码了。

2007-6-15 15:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jinlizhpc
初级用户




积分 165
发帖 74
注册 2007-1-8
状态 离线
『第 5 楼』:  

不行,XP.GHO文件不存在依然运行GHOST.EXE,不单独显示"对不起,恢复文件不存在"

2007-6-15 16:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 6 楼』:  

那直接测试
if exist d:\sysbak\xp.gho (
echo 文件存在
) else (
echo      对不起,文件不存在
)
的结果是怎么样的?

2007-6-15 16:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jinlizhpc
初级用户




积分 165
发帖 74
注册 2007-1-8
状态 离线
『第 7 楼』:  

再写一个也不行,唉.........晕

@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

2007-6-15 16:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jinlizhpc
初级用户




积分 165
发帖 74
注册 2007-1-8
状态 离线
『第 8 楼』:  谁可以修改?

谁可以修改?

2007-6-15 17:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jinlizhpc
初级用户




积分 165
发帖 74
注册 2007-1-8
状态 离线
『第 9 楼』:  没有人可以解决问题吗?

没有人可以解决问题吗?

2007-6-16 10:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sfencer
新手上路





积分 16
发帖 8
注册 2007-6-4
状态 离线
『第 10 楼』:  

我也不知道,关注一一

2007-6-16 11:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 11 楼』:  

思路混乱

  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





2007-6-16 11:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jinlizhpc
初级用户




积分 165
发帖 74
注册 2007-1-8
状态 离线
『第 12 楼』:  

系统恢复光盘自动批处理改编成功!并且验证通过,现在公开代码给大家分享

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 ]

2007-6-18 11:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sgzhou6688
中级用户





积分 231
发帖 110
注册 2008-3-24
来自 中国大陆
状态 离线
『第 13 楼』:  

感谢,顶一下》》》》》》》》》》》》》》》》

2010-5-18 13:10
查看资料  发送邮件  发短消息 网志  OICQ (405418144)  编辑帖子  回复  引用回复
sgzhou6688
中级用户





积分 231
发帖 110
注册 2008-3-24
来自 中国大陆
状态 离线
『第 14 楼』:  

但是,有些问题,如何是像F11或者F10那样能
调用相关的程序》》》》》》》》》》》》》》

2010-5-22 17:50
查看资料  发送邮件  发短消息 网志  OICQ (405418144)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: