中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 07:36
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 系统恢复光盘自动批处理公开代码
可打印版本  1,709 / 13
第1楼 jinlizhpc 发表于 2007-06-15 15:28
初级用户 发帖 74 积分 165
系统恢复光盘自动批处理公开代码
本人做了一个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楼 wudixin96 发表于 2007-06-15 15:42
银牌会员 发帖 931 积分 1,928


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楼 jinlizhpc 发表于 2007-06-15 15:46
初级用户 发帖 74 积分 165
()也要用上吗?
第4楼 wudixin96 发表于 2007-06-15 15:53
银牌会员 发帖 931 积分 1,928
当然,要不那就不是一行代码了。
第5楼 jinlizhpc 发表于 2007-06-15 16:28
初级用户 发帖 74 积分 165
不行,XP.GHO文件不存在依然运行GHOST.EXE,不单独显示"对不起,恢复文件不存在"
第6楼 wudixin96 发表于 2007-06-15 16:35
银牌会员 发帖 931 积分 1,928
那直接测试
的结果是怎么样的?
第7楼 jinlizhpc 发表于 2007-06-15 16:48
初级用户 发帖 74 积分 165
再写一个也不行,唉.........晕

@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楼 jinlizhpc 发表于 2007-06-15 17:22
初级用户 发帖 74 积分 165
谁可以修改?
谁可以修改?
第9楼 jinlizhpc 发表于 2007-06-16 10:46
初级用户 发帖 74 积分 165
没有人可以解决问题吗?
没有人可以解决问题吗?
第10楼 sfencer 发表于 2007-06-16 11:03
新手上路 发帖 8 积分 16
我也不知道,关注一一
第11楼 zh159 发表于 2007-06-16 11:56
金牌会员 发帖 1,467 积分 3,687
思路混乱
: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楼 jinlizhpc 发表于 2007-06-18 11:33
初级用户 发帖 74 积分 165
系统恢复光盘自动批处理改编成功!并且验证通过,现在公开代码给大家分享

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楼 sgzhou6688 发表于 2010-05-18 13:10
中级用户 发帖 110 积分 231 来自 中国大陆
感谢,顶一下》》》》》》》》》》》》》》》》
第14楼 sgzhou6688 发表于 2010-05-22 17:50
中级用户 发帖 110 积分 231 来自 中国大陆
但是,有些问题,如何是像F11或者F10那样能
调用相关的程序》》》》》》》》》》》》》》
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023