无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 15518|回复: 54
打印 上一主题 下一主题

(实测已通过)PE下批处理自动搜索gho,手动恢复系统(已经公布)

[复制链接]
跳转到指定楼层
1#
发表于 2007-5-24 12:28:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
打算做一个自动搜索硬盘上的gho文件,并根据创建时间来判断,采用最新的来恢复系统
1、运行环境:pe已经测试通过了,xp下运行可以查看gho文件,恢复系统意义不大,其它的nt系统应该也可以查看gho文件,未测试。
2、功能:搜索可写磁盘根目录及下一级目录中的gho文件,不搜索3级目录,以免浪费时间,因为习惯上都是放在根目录及下一级目录中,并且支持隐藏目录、特殊、带点目录如矮人及一键ghost的,支持隐藏文件。

在编写过程中得到lianjiangterse 2位的大力支持,非常感谢!
另外,借用了老毛桃的部分代码,一并鸣谢,呵呵
感谢haiou327 修正ghost命令参数! --070604
感谢terse去除无关信息                        --070604
实测时老毛桃的0418不支持sort命令,怎么办?
能用什么方法代替?主要是对有时间信息及文件名的文本文档处理。
........................!  --070605
变通了一下,改成手动的了,更安全,算是完成了,基本不会再改动了,除非有很好的算法!
而且又发现一个不支持的命令ping.
                                                                      --070606 by wjh6088
  1. @echo off
  2. color 2e
  3. :清除上次用过的文件
  4. attrib -s -r -h %temp%\*.ttt 2>nul
  5. del  %temp%\*.ttt 2>nul
  6. :确定可写盘的盘符
  7. SET TestFile=Test_%RANDOM%.TMP
  8. SETLOCAL ENABLEDELAYEDEXPANSION
  9. For %%I 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 (
  10. CD.>%%I:\%TestFile%
  11. cls&&If Exist %%I:\%TestFile% echo %%I >>%temp%\pflist.ttt&&DEL %%I:\%TestFile% /Q
  12. )
  13. echo.
  14. echo.
  15. set lll=      
  16. echo%lll% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  17. echo%lll% $                                                            $
  18. echo%lll% $  本程序自动查找gho文件(支持隐藏目录、隐藏文件、特殊.目录)$
  19. echo%lll% $  可列出可写磁盘的根目录及下一级目录中所有gho,但是排序时   $
  20. echo%lll% $  最多支持排列18个gho文件。                                 $
  21. echo%lll% $  感谢无忧的lianjiang、terse、老毛桃、haiou327支持          $
  22. echo%lll% $                                 编写:无忧启动  wjh6088    $
  23. echo%lll% $                                            2007年6月6日    $
  24. echo%lll% $                                                            $
  25. echo%lll% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  26. ECHO   当前可写的盘符列表如下
  27. type %temp%\pflist.ttt
  28. :搜索根目录下的gho文件
  29. echo 正在搜索根目录下的gho文件
  30. for /f %%i in (%temp%\pflist.ttt) do (
  31. for /f "delims=$$$" %%I in ('dir /b /a-d /o-d "%%i:\*.gho"  2^>nul') do (echo %%i:\%%I >>%temp%\list.ttt
  32.   )
  33. )
  34. echo 根目录下的gho文件清单如下
  35. echo ####################################################
  36. type %temp%\list.ttt
  37. echo ####################################################
  38. :搜索次级目录下的gho文件
  39. echo 正在搜索次级目录下的gho文件
  40. for /f  %%o in (%temp%\pflist.ttt) do (
  41. for /f  "skip=5 tokens=4*" %%i in ('dir /x /ad %%o:\') DO (
  42. for /f  "delims=$$$" %%a in ('dir /b /a-d /o-d "%%o:\%%i\*.gho"  2^>nul') do echo %%o:\%%i\%%a >>%temp%\list.ttt
  43.   )
  44. )
  45. set 跳过行数=0
  46. set 变量名序号=1
  47. for /f "delims=$$$$$" %%i in (%temp%\list.ttt) do (set g1=%%i)&&(goto 递增)
  48. :递增
  49. set /a 跳过行数=%跳过行数%+1
  50. set /a 变量名序号=%变量名序号%+1
  51. if %跳过行数%==18 goto 赋值完毕
  52. call :赋值 %变量名序号%
  53. :赋值
  54. for /f "skip=%跳过行数% delims=$$$$$" %%i in (%temp%\list.ttt) do (set g%1=%%i)&&(goto 递增)
  55. :赋值完毕
  56. for /f "delims=[]" %%i in ('find /n /i ".gho" %temp%\list.ttt') do (set 文件数=%%i)
  57. :排序
  58. del %temp%\listfinish.ttt 2>nul
  59. goto g%文件数%
  60. :g1
  61. dir /a-d /b /o-d "%g1%">>%temp%\listfinish.ttt
  62. goto  glist
  63. :g2
  64. dir /a-d /b /o-d "%g1%" "%g2%">>%temp%\listfinish.ttt
  65. goto  glist
  66. :g3
  67. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%">>%temp%\listfinish.ttt
  68. goto  glist
  69. :g4
  70. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%">>%temp%\listfinish.ttt
  71. goto  glist
  72. :g5
  73. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%">>%temp%\listfinish.ttt
  74. goto  glist
  75. :g6
  76. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%">>%temp%\listfinish.ttt
  77. goto  glist
  78. :g7
  79. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%">>%temp%\listfinish.ttt
  80. goto  glist
  81. :g8
  82. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%">>%temp%\listfinish.ttt
  83. goto  glist
  84. :g9
  85. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%">>%temp%\listfinish.ttt
  86. goto  glist
  87. :g10
  88. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%">>%temp%\listfinish.ttt
  89. goto  glist
  90. :g11
  91. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%">>%temp%\listfinish.ttt
  92. goto  glist
  93. :g12
  94. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%">>%temp%\listfinish.ttt
  95. goto  glist
  96. :g13
  97. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%" "%g13%">>%temp%\listfinish.ttt
  98. goto  glist
  99. :g14
  100. dir /a-d  /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%" "%g13%" "%g14%">>%temp%\listfinish.ttt
  101. goto  glist
  102. :g15
  103. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%" "%g13%" "%g14%" "%g15%">>%temp%\listfinish.ttt
  104. goto  glist
  105. :g16
  106. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%" "%g13%" "%g14%" "%g15%" "%g16%">>%temp%\listfinish.ttt
  107. goto  glist
  108. :g17
  109. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%" "%g13%" "%g14%" "%g15%" "%g16%" "%g17%">>%temp%\listfinish.ttt
  110. goto  glist
  111. :g18
  112. dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%" "%g13%" "%g14%" "%g15%" "%g16%" "%g17%" "%g18%">>%temp%\listfinish.ttt
  113. goto  glist
  114. :glist
  115. echo 可写磁盘根目录及下一级目录中,共搜索出%文件数%个gho文件(不搜索光盘)
  116. echo 列表如下(按修改日期,从新到旧排列,最多排18个)
  117. echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  118. type %temp%\listfinish.ttt
  119. echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  120. echo 以下为详细信息,(包括所有gho文件,无数量限制),注意**不完全按修改日期排序
  121. echo 按任意键继续显示
  122. pause>nul
  123. for /f "delims=" %%j in (%temp%\list.ttt) do echo %%~dptznxj>>%temp%\listfinish3.ttt
  124. echo _____________________________________________________________________
  125. echo 文件修改日期 时间  大小(单位:字节) 文件路径、及名字
  126. echo *********************************************************************
  127. type %temp%\listfinish3.ttt
  128. echo *********************************************************************
  129. :ghost
  130. echo 将手动运行ghost32.exe,本批处理同一个目录下需要有ghost32.exe文件
  131. pause>nul
  132. ghost32.exe
  133. :end
  134. pause
  135. exit
复制代码

[ 本帖最后由 wjh6088 于 2007-6-7 04:40 PM 编辑 ]
55#
发表于 2007-7-20 17:31:27 | 只看该作者
:D 学习,学习一下,哈哈
回复

使用道具 举报

54#
发表于 2007-7-12 09:34:04 | 只看该作者
不错的辅助工具。
支持一下。
回复

使用道具 举报

53#
发表于 2007-6-29 10:50:00 | 只看该作者
不错不错,这个东东我喜欢
回复

使用道具 举报

52#
 楼主| 发表于 2007-6-9 11:37:48 | 只看该作者
“.gho”替换为“%1
%1我定义成变量的序列了,g1、g2、g3...g18,所以改了%1的值的话,排序时会找不到相应的g3段,但是搜索时是把所有的gh_文件都搜出来,并放入list.ttt里面的
回复

使用道具 举报

51#
发表于 2007-6-9 08:22:55 | 只看该作者
能否自定义文件的扩展名。
比如前一阵子“熊猫”捣乱时,有些人把gho文件改名为gh_
我试过把代码中的.gho改为.gh_   共改了三处(这三处都在For循环中),可以搜索出我的gh_文件。这样的批处理有局限性,不通用。

我又试过把代码中的“.gho”替换为“%%1”,共替换了三处(这三处都在For循环中),然后执行“SG.bat gh_”,不通过。

------------------------------------------------------------
再试,把代码中的“.gho”替换为“%1”,共替换了三处(这三处都在For循环中),然后执行“SG.bat gh_”,通过。只是二级目录出现错误提示。
提示如下:

       $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
       $                                                            $
       $  本程序自动查找gho文件(支持隐藏目录、隐藏文件、特殊.目录)$
       $  可列出可写磁盘的根目录及下一级目录中所有gho,但是排序时   $
       $  最多支持排列18个gho文件。                                 $
       $  感谢无忧的lianjiang、terse、老毛桃、haiou327支持          $
       $                                 编写:无忧启动  wjh6088    $
       $                                            2007年6月6日    $
       $                                                            $
       $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  当前可写的盘符列表如下
C
D
E
正在搜索根目录下的gho文件
根目录下的gho文件清单如下
####################################################
D:\VeryGood.GH_
D:\good.GH_
####################################################
正在搜索次级目录下的gho文件
系统找不到指定的批处理标签 - g----------
系统找不到指定的批处理标签 - g----------
系统找不到指定的批处理标签 - g----------
可写磁盘根目录及下一级目录中,共搜索出3个gho文件(不搜索光盘)
列表如下(按修改日期,从新到旧排列,最多排18个)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
VeryGood.GH_
good.GH_
SYS.GH_
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
以下为详细信息,(包括所有gho文件,无数量限制),注意**不完全按修改日期排序
按任意键继续显示
_____________________________________________________________________
文件修改日期 时间  大小(单位:字节) 文件路径、及名字
*********************************************************************
2007-03-10 08:36 1513989140 D:\VeryGood.GH_
2007-03-09 16:52 951932151 D:\good.GH_
2006-12-14 14:37 1314262372 E:\Ghost\SYS.GH_
*********************************************************************
将手动运行ghost32.exe,本批处理同一个目录下需要有ghost32.exe文件


奇怪的是,出现错误提示的同时,还可以搜索到二级目录中的gh_文件。

[ 本帖最后由 冷静永不变 于 2007-6-9 09:07 AM 编辑 ]
回复

使用道具 举报

50#
发表于 2007-6-8 13:59:13 | 只看该作者
用dirt  随便设定要搜索层数  

学习中
回复

使用道具 举报

49#
发表于 2007-6-6 22:15:22 | 只看该作者
原帖由 gmy 于 2007-6-5 10:59 PM 发表
关键问题PE兼容性(硬件引起的蓝屏)的问题。


从今时今日来看,应该是极少数了。不过,dos也是要并存的。
回复

使用道具 举报

48#
 楼主| 发表于 2007-6-6 21:05:33 | 只看该作者
原帖由 gmy 于 2007-6-5 10:59 PM 发表
关键问题PE兼容性(硬件引起的蓝屏)的问题。

高人说话,不明白意思
回复

使用道具 举报

47#
 楼主| 发表于 2007-6-6 21:04:43 | 只看该作者
实际测试时,不支持sort命令,不能完全实现功能,在1楼应该说得很明白了
回复

使用道具 举报

46#
发表于 2007-6-6 18:53:17 | 只看该作者

回复 #1 wjh6088 的帖子

“实测未通过”是什么意思?
是没有经过实际测试?
还是经过了实际测试,但不成功?
还是什么别的意思?
请楼主给明确解释一下。
回复

使用道具 举报

45#
发表于 2007-6-5 22:59:46 | 只看该作者
关键问题PE兼容性(硬件引起的蓝屏)的问题。
回复

使用道具 举报

44#
发表于 2007-6-5 02:24:11 | 只看该作者
对wjh6088的代码稍YY了一下制作成EXE

自动查找GHO.rar

61.89 KB, 下载次数: 86, 下载积分: 无忧币 -2

回复

使用道具 举报

43#
发表于 2007-6-5 01:09:11 | 只看该作者
希望wjh6088 写出更多更好的批处理代码!

[ 本帖最后由 haiou327 于 2010-5-13 20:52 编辑 ]
回复

使用道具 举报

42#
发表于 2007-6-5 01:07:38 | 只看该作者
潜水了!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

41#
 楼主| 发表于 2007-6-4 18:53:43 | 只看该作者
原帖由 terse 于 2007-6-4 06:19 PM 发表


dir /b /a-d "%%o\%%i\*.gho" 2^>nul

:) 呵呵,还是terse高,解决了:victory:
回复

使用道具 举报

40#
发表于 2007-6-4 18:19:43 | 只看该作者
原帖由 haiou327 于 2007-6-4 05:17 PM 发表
最好把打不到文件这个信息屏敝掉。
只显示找到的文件。
由于本人水平有限,修改不成功


dir /b /a-d "%%o\%%i\*.gho" 2^>nul
回复

使用道具 举报

39#
 楼主| 发表于 2007-6-4 17:36:04 | 只看该作者
原帖由 haiou327 于 2007-6-4 05:17 PM 发表
最好把打不到文件这个信息屏敝掉。
只显示找到的文件。
由于本人水平有限,修改不成功

我也不想要的,原来我是用attrib而不是dir来获得列表的,attrib没有  找不到文件 这个讨厌的提示,但是处理不了
没办法了

ghost的问题,我加上手动的吧,最保险了!反正用PE的不至于手动都不会吧

[ 本帖最后由 wjh6088 于 2007-6-4 05:45 PM 编辑 ]
回复

使用道具 举报

38#
发表于 2007-6-4 17:20:53 | 只看该作者
只显示查找到的分区和GHO 文件,选择菜单即可
回复

使用道具 举报

37#
发表于 2007-6-4 17:17:29 | 只看该作者
最好把找不到文件这个信息回显屏敝掉。
只显示找到的文件。
由于本人水平有限,修改不成功

[ 本帖最后由 haiou327 于 2007-6-5 01:01 AM 编辑 ]
回复

使用道具 举报

36#
 楼主| 发表于 2007-6-4 17:10:31 | 只看该作者
原帖由 haiou327 于 2007-6-4 04:15 PM 发表
ghost32.exe -rb -sure -clone,mode=load,src=%gho%,dst=1:1
这句要改成ghost32.exe -rb -sure -clone,mode=pload,src=%gho%:1,dst=1:1,      不然硬盘上其它分区的文件丢失可别哭啦   
恢到第一硬盘第一分区 ...

谢谢,昨天偷懒没有查这个的详细用法,反正到了这步,剩下的就自己发挥了 :lol :lol
回复

使用道具 举报

35#
发表于 2007-6-4 16:15:07 | 只看该作者
ghost32.exe -rb -sure -clone,mode=load,src=%gho%,dst=1:1
这句要改成ghost32.exe -rb -sure -clone,mode=pload,src=%gho%:1,dst=1:1,      不然硬盘上其它分区的文件丢失可别哭啦   

恢到第一硬盘第一分区,如果是当前使用的系统分区,是GHOST不了的。适合在PE下使用。

[ 本帖最后由 haiou327 于 2007-6-4 04:23 PM 编辑 ]
回复

使用道具 举报

34#
 楼主| 发表于 2007-6-3 23:41:20 | 只看该作者
原帖由 haiou327 于 2007-6-3 09:25 PM 发表

建议开头加上ECHO  OFF

呵呵,正式的当然不会没有这个的!
回复

使用道具 举报

33#
发表于 2007-6-3 21:25:13 | 只看该作者
原帖由 wjh6088 于 2007-5-24 12:28 PM 发表
打算做一个自动搜索硬盘上的gho文件,并根据创建时间来判断,采用最新的来恢复系统
1、如何只搜索根目录及下一级目录中的gho文件,不搜索3级目录,以免浪费时间,因为习惯上都是放在根目录及下一级目录中,此问 ...

建议开头加上ECHO  OFF
回复

使用道具 举报

32#
发表于 2007-6-3 07:20:54 | 只看该作者
原帖由 q8q8feng 于 2007-6-3 01:54 AM 发表
3、使用这个来进行系统的dos安装调用的原理还是借助了grub的原理来进行的,只是里面的deepdos.img写得有点意思。

确实里面的批处理还是有特色,只是我也看不懂。
里面的ghost向导处理还是很不错的。
回复

使用道具 举报

31#
发表于 2007-6-3 01:54:33 | 只看该作者
lianjiang朋友提到的DeepDOS工具的具体下载地址我提供一下:
1、这个DeepDOS 深度DOS个人版 Personal Edition V4.00的下载帖子在这里:
http://bbs.deepin.org/read.php?t ... l%20Edition%20V4.00
2、DeepDOS 深度DOS个人版[绿色版]很好用的系统备份恢复工具
http://bbs.deepin.org/read.php?tid=126642
3、使用这个来进行系统的dos安装调用的原理还是借助了grub的原理来进行的,只是里面的deepdos.img写得有点意思。
回复

使用道具 举报

30#
 楼主| 发表于 2007-6-2 17:42:46 | 只看该作者
最近太忙了,没空整理,明天公布
回复

使用道具 举报

29#
发表于 2007-5-27 15:13:24 | 只看该作者
for /f "skip=1" %%o in ('wmic logicaldisk get caption')替换为for %%o 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:) 一样
回复

使用道具 举报

28#
 楼主| 发表于 2007-5-27 13:38:09 | 只看该作者
恢复系统主要还是在pe下,wmic可能不支持哦
我用老毛桃的“确定可写盘”来确认驱动器号
回复

使用道具 举报

27#
发表于 2007-5-27 13:15:15 | 只看该作者
添加了引号(前面忘记了,呵呵)  以便搜索带空格文件夹
@echo off
for /f "skip=1" %%o in ('wmic logicaldisk where "drivetype='3'" get caption') do (
for /f "skip=1 tokens=*" %%i in ('dir /b /ad %%o\') DO (
for /f "tokens=* delims=" %%a in ('dir /b /a-d "%%o\%%i\*.gho"') do echo %%o\%%i\%%a >>123.txt
  )
)
for /f "delims=" %%j in (123.txt) do echo %%~dptnxj >>321.txt
pause

我以为还是多个搜索移动  U盘的方便吧
@echo off
for /f "skip=1" %%o in ('wmic logicaldisk get caption') do (
for /f "skip=1 tokens=*" %%i in ('dir /b /ad %%o\') DO (
for /f "tokens=* delims=" %%a in ('dir /b /a-d "%%o\%%i\*.gho"') do echo %%o\%%i\%%a >>123.txt
  )
)
for /f "delims=" %%j in (123.txt) do echo %%~dptnxj >>321.txt
pause

[ 本帖最后由 terse 于 2007-5-30 09:15 PM 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-16 00:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表