中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » 求助----怎样让ghost把镜像备份到最后一个分区的批处理。
« [1] [2] »
作者:
标题: 求助----怎样让ghost把镜像备份到最后一个分区的批处理。 上一主题 | 下一主题
yhzlt2008
新手上路





积分 19
发帖 9
注册 2007-1-8
状态 离线
『第 16 楼』:  

@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
这个批处理这样写对吗?

2007-1-31 05:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lizaoyou
中级用户




积分 210
发帖 85
注册 2007-1-14
来自 广东广州
状态 离线
『第 17 楼』:  

无光驱等时,应该可以通过,说点看法:
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 ]

2007-1-31 10:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hnlyzhd
高级用户




积分 544
发帖 164
注册 2004-10-17
状态 离线
『第 18 楼』:  

我把用的贴出来大伙看看

判断最后分区并分配变量:
===========================
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            我的网络盘
2007-1-31 10:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhzlt2008
新手上路





积分 19
发帖 9
注册 2007-1-8
状态 离线
『第 19 楼』:  



  Quote:
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 ...

楼上的能把你的批处理解释一下吗?

2007-2-1 12:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hnlyzhd
高级用户




积分 544
发帖 164
注册 2004-10-17
状态 离线
『第 20 楼』:  

用GHOST -DD生成SHSTSTAT.TXT,然后用FIND命令寻找1:1,1:2等字符,找到最大值,就把这个设置为变量IMAGEDRV,这个就是最后分区的盘符了!

然后用GHOST命令行参数自动备份恢复就OK!



    我的留言簿

http://hnlyzhd.ys168.com            我的网络盘
2007-2-1 20:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiaju8
初级用户





积分 74
发帖 30
注册 2007-3-9
状态 离线
『第 21 楼』:  

hnlyzhd 你的支持多硬盘吗

2007-3-12 20:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
axi
中级用户

脚本爱好者


积分 238
发帖 93
注册 2007-3-11
来自 GZ
状态 离线
『第 22 楼』:  

以下方法适合NTFS和FAT32混合的情形:
其中 %hdd%为硬盘数(不超过2个,可以增加检测 "key[1]   3" 行能检测出存在3个硬盘...),%partn%为分区数(不超过9个)

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

rem 把存在 Key[1]   1 的行数保存到 part.txt 中(表示第1硬盘存在的分区数,可以通过对 Key[1]   2 的行数检测,能得到第2硬盘分区数)
find "Key[1]   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 ]

2007-3-14 01:59
查看资料  发短消息 网志  OICQ (453623262)  编辑帖子  回复  引用回复
zzoym
初级用户





积分 56
发帖 13
注册 2006-11-19
状态 离线
『第 23 楼』:  

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

2007-3-14 05:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiaju8
初级用户





积分 74
发帖 30
注册 2007-3-9
状态 离线
『第 24 楼』:  

zzoym:
你这个能解释下吗

[ Last edited by jiaju8 on 2007-3-13 at 04:16 PM ]

2007-3-14 05:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cfenjin
新手上路





积分 2
发帖 1
注册 2009-12-10
状态 离线
『第 25 楼』:  

能不能写一个完整的,让ghost把镜像备份到最后一个分区的批处理。

2009-12-11 10:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 26 楼』:  



  Quote:
Originally posted by cfenjin at 2009-12-11 10:22:
能不能写一个完整的,让ghost把镜像备份到最后一个分区的批处理。

完整的,就到现成的一键恢复工具里去找。
不少一键恢复都是自动备份到最后分区的。



Windows 一键还原
http://www.yjhy.com
2009-12-22 10:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
DXSX
中级用户





积分 247
发帖 147
注册 2009-4-9
状态 离线
『第 27 楼』:  

http://bbs.wuyou.com/viewthread. ... 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 ]

附件 1: awk.rar (2009-12-23 18:37, 43.01 K,下载次数: 21)
2009-12-23 18:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xsdxb
新手上路





积分 8
发帖 4
注册 2010-9-13
状态 离线
『第 28 楼』:  

我有一个,看看行不行
@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三个键后重新启动计算机!

2010-9-16 22:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
t9v10
新手上路





积分 6
发帖 3
注册 2010-7-27
状态 离线
『第 29 楼』:  

15L就是那样

2010-9-26 15:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: