Board logo

标题: 求助----怎样让ghost把镜像备份到最后一个分区的批处理。 [打印本页]

作者: yhzlt2008     时间: 2007-1-18 04:52    标题: 求助----怎样让ghost把镜像备份到最后一个分区的批处理。

我是新手不知道怎么写?哪为好心的高手帮帮我啊!!!
作者: lotus516     时间: 2007-1-18 05:04
你不会搜啊!
作者: yhzlt2008     时间: 2007-1-18 05:21


  Quote:
Originally posted by lotus516 at 2007-1-17 04:04 PM:
你不会搜啊!

搜不到,没有啊?
作者: lianjiang2004     时间: 2007-1-18 08:43
也可下个一键ghost,看看人家怎么写的。
作者: chen463     时间: 2007-1-20 06:30
ghost -clone,mode=pdump,src=1:1,dst=1:*\xxx.gho -sure -fx


...
1:*→第一硬盘第几分区,如分三区就是1:3,四区就是1:4
作者: lhteee     时间: 2007-1-21 11:00
作个循环判断。
作者: freetree     时间: 2007-1-22 02:26
ghost -clone,mode=pdump,src=1:1,dst=1:*\xxx.gho -span -z9 -split=680 -sure
作者: lianjiang2004     时间: 2007-1-22 08:56
关键就是这个* 是自己的机子,特定的数字,还是通用的,不固定的数字。
固定的话好办。不固定的话,就要通过批处理确定后赋值。
dst=1:*\xxx.gho
作者: yhzlt2008     时间: 2007-1-22 23:25


  Quote:
Originally posted by lianjiang2004 at 2007-1-21 07:56 PM:
关键就是这个* 是自己的机子,特定的数字,还是通用的,不固定的数字。
固定的话好办。不固定的话,就要通过批处理确定后赋值。
dst=1:*\xxx.gho

:P请问这个批处理怎么写?我就是这个不会写,能帮我写一个吗?:D
作者: lianjiang2004     时间: 2007-1-23 00:08


  Quote:
Originally posted by yhzlt2008 at 2007-1-22 23:25:

:P请问这个批处理怎么写?我就是这个不会写,能帮我写一个吗?:D

可下载我的gghost,看看里面的批处理,供参考。
作者: yhzlt2008     时间: 2007-1-26 08:28
楼上的你的GGhost里面的批处理太复杂了,我现在的水平看不懂啊!能不能给个简单点的?
作者: lizaoyou     时间: 2007-1-27 08:36


  Quote:
关键就是这个* 是自己的机子,特定的数字,还是通用的,不固定的数字。
固定的话好办。不固定的话,就要通过批处理确定后赋值。
dst=1:*\xxx.gho

任务: 返回*值,如最后一个分区是E,应返回3,若为F,则返回4,余此类推。
以下是使用批处理增强工具FINDCD.EXE、STRINGS.COM(论坛里有下载)的一个例子:

@echo off
set cdrom1=
findcd /s>nul
if not "%cdrom1%"=="" strings last=left %cdrom1%,1,1
if not "%cdrom1%"=="" goto ston
for %%n in (C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do if exist %%n:\nul set last=%%n
:ston
strings last=val %last%
strings last=sub %last%,67
if "%cdrom1%"=="" strings last=add %last%,1
echo %last%
set cdrom=
set cdrom1=
(测试环境:MS-DOS7.10)
作者: lianjiang2004     时间: 2007-1-27 09:14


  Quote:
Originally posted by lizaoyou at 2007-1-27 08:36:


任务: 返回*值,如最后一个分区是E,应返回3,若为F,则返回4,余此类推。
以下是使用批处理增强工具FINDCD.EXE、STRINGS.COM(论坛里有下载)的一个 ...

NTFS分区能处理的了吗?
作者: lizaoyou     时间: 2007-1-27 09:55


  Quote:
Originally posted by lianjiang2004 at 2007-1-26 08:14 PM:

NTFS分区能处理的了吗?

NTFS分区是不支持DOS的,除非加载ntfsdos、ifs等第三方驱动。
作者: lianjiang2004     时间: 2007-1-27 10:26
加载后,盘符与分区的对应关系也要处理才行。
作者: yhzlt2008     时间: 2007-1-31 05:36
@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
这个批处理这样写对吗?
作者: lizaoyou     时间: 2007-1-31 10:33
无光驱等时,应该可以通过,说点看法:
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 ]
作者: hnlyzhd     时间: 2007-1-31 10:42
我把用的贴出来大伙看看

判断最后分区并分配变量:
===========================
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
作者: yhzlt2008     时间: 2007-2-1 12:27


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

楼上的能把你的批处理解释一下吗?
作者: hnlyzhd     时间: 2007-2-1 20:52
用GHOST -DD生成SHSTSTAT.TXT,然后用FIND命令寻找1:1,1:2等字符,找到最大值,就把这个设置为变量IMAGEDRV,这个就是最后分区的盘符了!

然后用GHOST命令行参数自动备份恢复就OK!
作者: jiaju8     时间: 2007-3-12 20:27
hnlyzhd 你的支持多硬盘吗
作者: axi     时间: 2007-3-14 01:59
以下方法适合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 ]
作者: zzoym     时间: 2007-3-14 05:08
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
作者: jiaju8     时间: 2007-3-14 05:14
zzoym:
你这个能解释下吗

[ Last edited by jiaju8 on 2007-3-13 at 04:16 PM ]
作者: cfenjin     时间: 2009-12-11 10:22
能不能写一个完整的,让ghost把镜像备份到最后一个分区的批处理。
作者: lianjiang2004     时间: 2009-12-22 10:40


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

完整的,就到现成的一键恢复工具里去找。
不少一键恢复都是自动备份到最后分区的。
作者: DXSX     时间: 2009-12-23 18:31
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)

作者: xsdxb     时间: 2010-9-16 22:18
我有一个,看看行不行
@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三个键后重新启动计算机!
作者: t9v10     时间: 2010-9-26 15:41
15L就是那样