中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-22 20:48
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 系统恢复光盘自动批处理公开代码 查看 1,639 回复 13
楼 主 系统恢复光盘自动批处理公开代码 发表于 2007-06-15 15:28 ·  中国 广东 肇庆 电信
初级用户
★★
积分 165
发帖 74
注册 2007-01-08 08:17
19年会员
UID 75816
性别 男
状态 离线
本人做了一个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 ]
2 发表于 2007-06-15 15:42 ·  中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
@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
3 发表于 2007-06-15 15:46 ·  中国 广东 肇庆 电信
初级用户
★★
积分 165
发帖 74
注册 2007-01-08 08:17
19年会员
UID 75816
性别 男
状态 离线
()也要用上吗?
4 发表于 2007-06-15 15:53 ·  中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
当然,要不那就不是一行代码了。
5 发表于 2007-06-15 16:28 ·  中国 广东 肇庆 电信
初级用户
★★
积分 165
发帖 74
注册 2007-01-08 08:17
19年会员
UID 75816
性别 男
状态 离线
不行,XP.GHO文件不存在依然运行GHOST.EXE,不单独显示"对不起,恢复文件不存在"
6 发表于 2007-06-15 16:35 ·  中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
那直接测试
if exist d:\sysbak\xp.gho (
echo 文件存在
) else (
echo 对不起,文件不存在
)

的结果是怎么样的?
7 发表于 2007-06-15 16:48 ·  中国 广东 肇庆 电信
初级用户
★★
积分 165
发帖 74
注册 2007-01-08 08:17
19年会员
UID 75816
性别 男
状态 离线
再写一个也不行,唉.........晕

@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
8 谁可以修改? 发表于 2007-06-15 17:22 ·  中国 广东 肇庆 电信
初级用户
★★
积分 165
发帖 74
注册 2007-01-08 08:17
19年会员
UID 75816
性别 男
状态 离线
谁可以修改?
9 没有人可以解决问题吗? 发表于 2007-06-16 10:46 ·  中国 广东 肇庆 电信
初级用户
★★
积分 165
发帖 74
注册 2007-01-08 08:17
19年会员
UID 75816
性别 男
状态 离线
没有人可以解决问题吗?
10 发表于 2007-06-16 11:03 ·  IANA 局域网IP(Private-Use)
新手上路
积分 16
发帖 8
注册 2007-06-04 21:57
19年会员
UID 90264
性别 男
状态 离线
我也不知道,关注一一
11 发表于 2007-06-16 11:56 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
思路混乱
: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


按你的思路估计是改成:


: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
12 发表于 2007-06-18 11:33 ·  中国 广东 肇庆 电信
初级用户
★★
积分 165
发帖 74
注册 2007-01-08 08:17
19年会员
UID 75816
性别 男
状态 离线
系统恢复光盘自动批处理改编成功!并且验证通过,现在公开代码给大家分享

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 ]
13 发表于 2010-05-18 13:10 ·  中国 山东 联通
中级用户
★★
积分 231
发帖 110
注册 2008-03-24 16:22
18年会员
UID 113876
性别 男
来自 中国大陆
状态 离线
感谢,顶一下》》》》》》》》》》》》》》》》
14 发表于 2010-05-22 17:50 ·  中国 山东 烟台 联通
中级用户
★★
积分 231
发帖 110
注册 2008-03-24 16:22
18年会员
UID 113876
性别 男
来自 中国大陆
状态 离线
但是,有些问题,如何是像F11或者F10那样能
调用相关的程序》》》》》》》》》》》》》》
论坛跳转: