中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-22 18:23
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » 求助----怎样让ghost把镜像备份到最后一个分区的批处理。 查看 6,546 回复 28
16 发表于 2007-01-31 05:36 ·  中国 新疆 喀什地区 电信
新手上路
积分 19
发帖 9
注册 2007-01-08 04:24
19年会员
UID 75790
性别 男
状态 离线
@echo off
set drv=c d e f g h i j k l m n o p q r s t u v w x y z
if "%1"=="" if "%last_drv%"=="" call %0 %drv%
:set_last
if "%1"=="" goto end
md %1:\last.drv>nul
if not exist %1:\last.drv\nul goto end
rd %1:\last.drv>nul
set last_drv=%1:
shift
goto set_last

:end
这个批处理这样写对吗?
17 发表于 2007-01-31 10:33 ·  中国 广东 广州 珠江宽频
中级用户
★★
积分 210
发帖 85
注册 2007-01-14 12:38
19年会员
UID 76501
性别 男
来自 广东广州
状态 离线
无光驱等时,应该可以通过,说点看法:
1. md 行的 >nul 似乎不起作用,因为若盘符有效,md 是不产生信息的,若盘符无效,>nul 又不能屏蔽错误信息。
2. 通过建临时目录的方法进行判断似嫌多余,可将 if not ... 行简化为 if not exist %1:\nul goto end,并删除前后两行(md、rd 行),同样可达到目的。
3. 镜像要ghost到最后一个分区,还需将盘符转为数字。

[ Last edited by lizaoyou on 2007-1-30 at 09:47 PM ]
18 发表于 2007-01-31 10:42 ·  中国 河南 洛阳 联通
高级用户
★★
积分 544
发帖 164
注册 2004-10-17 12:00
21年会员
UID 32648
性别 男
状态 离线
我把用的贴出来大伙看看

判断最后分区并分配变量:
===========================
CLS

:1
FIND /I "%P%:%1" GHSTSTAT.TXT >NUL
IF ERRORLEVEL 1 GOTO 2
SET IMAGEDRV=%P%:%1
GOTO 1

:2

==============================================
利用GHSOT对目标区进行备份恢复
ghost -dd >NUL
set p=1
call FINDDRV.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14
ghost -clone,mode=pdump,src=1:1,dst=%imagedrv%:\System.gho -z5 -fx -sure

===================================

我的一键恢复下载:

下载地址:
网通:
http://www.yjwb.net/sysoft/onekey.rar
电信:
ftp://sysoft:sysoft@219.150.11.34/onekey.rar
我的留言簿

http://hnlyzhd.ys168.com 我的网络盘
19 发表于 2007-02-01 12:27 ·  中国 新疆 喀什地区 电信
新手上路
积分 19
发帖 9
注册 2007-01-08 04:24
19年会员
UID 75790
性别 男
状态 离线
Originally posted by hnlyzhd at 2007-1-30 09:42 PM:
我把用的贴出来大伙看看

判断最后分区并分配变量:
===========================
CLS

:1
FIND /I "%P%:%1" GHSTSTAT.TXT >NUL
IF ERRORLEVEL 1 GOTO 2
SET IMAGE ...

楼上的能把你的批处理解释一下吗?
20 发表于 2007-02-01 20:52 ·  中国 河南 洛阳 联通
高级用户
★★
积分 544
发帖 164
注册 2004-10-17 12:00
21年会员
UID 32648
性别 男
状态 离线
用GHOST -DD生成SHSTSTAT.TXT,然后用FIND命令寻找1:1,1:2等字符,找到最大值,就把这个设置为变量IMAGEDRV,这个就是最后分区的盘符了!

然后用GHOST命令行参数自动备份恢复就OK!
我的留言簿

http://hnlyzhd.ys168.com 我的网络盘
21 发表于 2007-03-12 20:27 ·  中国 黑龙江 牡丹江 中移铁通
初级用户
积分 74
发帖 30
注册 2007-03-09 21:39
19年会员
UID 81219
性别 男
状态 离线
hnlyzhd 你的支持多硬盘吗
22 发表于 2007-03-14 01:59 ·  中国 广东 广州 番禺区 电信
中级用户
★★
脚本爱好者
积分 238
发帖 93
注册 2007-03-11 13:38
19年会员
UID 81417
性别 男
来自 GZ
状态 离线
以下方法适合NTFS和FAT32混合的情形:
其中 %hdd%为硬盘数(不超过2个,可以增加检测 "key 3" 行能检测出存在3个硬盘...),%partn%为分区数(不超过9个)

set hdd=
set partn=
ghost.exe -dd >nul
find "Key 2" ghststat.txt >nul
if errorlevel 1 set "hdd=1" && goto 0pt
set hdd=2

rem 把存在 Key 1 的行数保存到 part.txt 中(表示第1硬盘存在的分区数,可以通过对 Key 2 的行数检测,能得到第2硬盘分区数)
find "Key 1" /c ghststat.txt >part.txt
:0pt
find "0" part.txt >nul
if errorlevel 1 goto 1pt
set partn=0
goto checkok
:1pt
find "1" part.txt >nul
if errorlevel 1 goto 2pt
set partn=1
goto checkok
:2pt
find "2" part.txt >nul
if errorlevel 1 goto 3pt
set partn=2
goto checkok
:3pt
find "3" part.txt >nul
if errorlevel 1 goto 4pt
set partn=3
goto checkok
:4pt
find "4" part.txt >nul
if errorlevel 1 goto 5pt
set partn=4
goto checkok
:5pt
find "5" part.txt >nul
if errorlevel 1 goto 6pt
set partn=5
goto checkok
:6pt
find "6" part.txt >nul
if errorlevel 1 goto 7pt
set partn=6
goto checkok
:7pt
find "7" part.txt >nul
if errorlevel 1 goto 8pt
set partn=7
goto checkok
:8pt
find "8" part.txt >nul
if errorlevel 1 goto 9pt
set partn=8
goto checkok
:9pt
find "9" part.txt >nul
if errorlevel 1 goto err
set partn=9
goto checkok
:err
set partn=?
:checkok
del ghststat.txt
del part.txt

ghost -z3 -sure -fx -fro -auto -clone,mode=pdump,src=1:1,dst=1:%partn%\SYSC.GHO

[ Last edited by axi on 2007-3-13 at 01:34 PM ]
23 发表于 2007-03-14 05:08 ·  中国 湖南 株洲 电信
初级用户
积分 56
发帖 13
注册 2006-11-19 08:55
19年会员
UID 71039
性别 男
状态 离线
ghost11 -dd >NUL
set p=1
call flast.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14
GHOST11.EXE -CLONE,MODE=PLOAD,SRC=%LastP%\SYSBAK.BBS:1,DST=1:1 -sure -FX -RB

flast.bat
:1
FIND /i "%p%:%1" GHSTSTAT.TXT >NUL
if errorlevel 1 goto 2
set LastP=%p%:%1
Shift
goto 1

:2
:del GHSTSTAT.TXT
24 发表于 2007-03-14 05:14 ·  中国 黑龙江 齐齐哈尔 中移铁通
初级用户
积分 74
发帖 30
注册 2007-03-09 21:39
19年会员
UID 81219
性别 男
状态 离线
zzoym:
你这个能解释下吗

[ Last edited by jiaju8 on 2007-3-13 at 04:16 PM ]
25 发表于 2009-12-11 10:22 ·  中国 江苏 镇江 移动
新手上路
积分 2
发帖 1
注册 2009-12-10 13:50
16年会员
UID 156279
性别 男
状态 离线
能不能写一个完整的,让ghost把镜像备份到最后一个分区的批处理。
26 发表于 2009-12-22 10:40 ·  中国 安徽 马鞍山 联通
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
Originally posted by cfenjin at 2009-12-11 10:22:
能不能写一个完整的,让ghost把镜像备份到最后一个分区的批处理。


完整的,就到现成的一键恢复工具里去找。
不少一键恢复都是自动备份到最后分区的。
Windows 一键还原
http://www.yjhy.com
27 发表于 2009-12-23 18:31 ·  中国 辽宁 葫芦岛 联通
中级用户
★★
积分 247
发帖 147
注册 2009-04-09 20:52
17年会员
UID 142531
性别 男
状态 离线
http://bbs.wuyou.com/viewthread.php?tid=138340&extra=page%3D1&page=1

用awk 一句话就可以搞定
大概应该是:
gdisk 1|awk '/PRIMARY/;/LOGICA/' |AWK 'END {printf "ghost -clone,mode pdump,src=1:1,dst=1:"FNR":";printf "%%c",92;printf "System.gho -z5 -fx -sure"}'>G.BAT

得到的 G.BAT 就是你所需要的脚本。
就是用awk 分析gdisk 得到的第一硬盘分区信息获得分区总个数,并生成对应的备份脚本g.bat。


需要gdisk 和awk

[ Last edited by DXSX on 2009-12-23 at 19:35 ]
附件
awk.rar (43.01 KiB, 下载次数: 21)
28 发表于 2010-09-16 22:18 ·  中国 湖北 黄冈 电信
新手上路
积分 8
发帖 4
注册 2010-09-13 10:22
15年会员
UID 174097
性别 男
状态 离线
我有一个,看看行不行
@echo off
XMSDSK 6144 /Y >nul
FINDRAMD >NUL
MD %RAMDRIVE%\TEMP
SET TMP=%RAMDRIVE%\TEMP
SET TEMP=%RAMDRIVE%\TEMP
COPY COMMAND.COM %RAMDRIVE%\ >NUL
PATH=%RAMDRIVE%\;%PATH%
SET COMSPEC=%RAMDRIVE%\COMMAND.COM
copy /y A:\ghost.exe %RAMDRIVE%\ >NUL
copy /y a:\finddrv.bat %RAMDRIVE%\ >NUL
copy /y a:\find.com %RAMDRIVE%\ >NUL
copy /y a:\restart.com %RAMDRIVE%\ >NUL

@cls
@echo.
@echo △△[Ghost自动备份]
@echo.
@echo 将第 1 块硬盘的第 1 分区(C盘) 备份到最后分区\Ghost\GhostXP.gho
@echo.
@echo 注意! 最后分区中如果存有同名镜像文件将被覆盖。
@echo.
@echo 压缩率:高等压缩
@echo.
@echo.
@A:\CHOICE 要继续吗?请选择是(Y)或否(N)
@If errorlevel 1 if not errorlevel 2 goto HF
@if errorlevel 2 if not errorlevel 3 goto Show
:HF

%RAMDRIVE%\
ghost -dd >NUL
set p=1
call FINDDRV.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14
ghost -clone,mode=pdump,src=1:1,dst=%imagedrv%:\ghost\GHOSTXP.GHO -z5 -sure -rb
@if errorlevel 2 if not errorlevel 3 goto Show
:Show
@echo.
@echo.
@echo.
@echo 同时按下Ctrl + Alt + Del三个键后重新启动计算机!
29 发表于 2010-09-26 15:41 ·  中国 广东 深圳 联通
新手上路
积分 6
发帖 3
注册 2010-07-27 10:29
15年会员
UID 171270
性别 男
状态 离线
15L就是那样
论坛跳转: