中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]谁能继续完善一下这个GHOST批处理
作者:
标题: [求助]谁能继续完善一下这个GHOST批处理 上一主题 | 下一主题
fengmi
新手上路





积分 4
发帖 1
注册 2007-12-18
状态 离线
『楼 主』:  [求助]谁能继续完善一下这个GHOST批处理

我找到这样一个批处理是无忧的一个朋友写的,但是最后他用了手动GHOST。请各位大师继续完善一下,改成自动恢复GHO的。
批处理如下:

  Quote:
@echo off
color 2e
:清除上次用过的文件
attrib -s -r -h %temp%\*.ttt 2>nul
del %temp%\*.ttt 2>nul
:确定可写盘的盘符
SET TestFile=Test_%RANDOM%.TMP
SETLOCAL ENABLEDELAYEDEXPANSION
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 (
CD.>%%I:\%TestFile%
cls&&If Exist %%I:\%TestFile% echo %%I >>%temp%\pflist.ttt&&DEL %%I:\%TestFile% /Q
)
echo.
echo.
set lll=
echo%lll% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
echo%lll% $ $
echo%lll% $ 本程序自动查找gho文件(支持隐藏目录、隐藏文件、特殊.目录)$
echo%lll% $ 可列出可写磁盘的根目录及下一级目录中所有gho,但是排序时 $
echo%lll% $ 最多支持排列18个gho文件。 $
echo%lll% $ $
echo%lll% $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ECHO 当前可写的盘符列表如下
type %temp%\pflist.ttt
:搜索根目录下的gho文件
echo 正在搜索根目录下的gho文件
for /f %%i in (%temp%\pflist.ttt) do (
for /f "delims=$$$" %%I in ('dir /b /a-d /o-d "%%i:\*.gho" 2^>nul') do (echo %%i:\%%I >>%temp%\list.ttt
)
)
echo 根目录下的gho文件清单如下
echo ####################################################
type %temp%\list.ttt
echo ####################################################
:搜索次级目录下的gho文件
echo 正在搜索次级目录下的gho文件
for /f %%o in (%temp%\pflist.ttt) do (
for /f "skip=5 tokens=4*" %%i in ('dir /x /ad %%o:\') DO (
for /f "delims=$$$" %%a in ('dir /b /a-d /o-d "%%o:\%%i\*.gho" 2^>nul') do echo %%o:\%%i\%%a >>%temp%\list.ttt
)
)
set 跳过行数=0
set 变量名序号=1
for /f "delims=$$$$$" %%i in (%temp%\list.ttt) do (set g1=%%i)&&(goto 递增)
:递增
set /a 跳过行数=%跳过行数%+1
set /a 变量名序号=%变量名序号%+1
if %跳过行数%==18 goto 赋值完毕
call :赋值 %变量名序号%
:赋值
for /f "skip=%跳过行数% delims=$$$$$" %%i in (%temp%\list.ttt) do (set g%1=%%i)&&(goto 递增)
:赋值完毕
for /f "delims=[]" %%i in ('find /n /i ".gho" %temp%\list.ttt') do (set 文件数=%%i)
:排序
del %temp%\listfinish.ttt 2>nul
goto g%文件数%
:g1
dir /a-d /b /o-d "%g1%">>%temp%\listfinish.ttt
goto glist
:g2
dir /a-d /b /o-d "%g1%" "%g2%">>%temp%\listfinish.ttt
goto glist
:g3
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%">>%temp%\listfinish.ttt
goto glist
:g4
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%">>%temp%\listfinish.ttt
goto glist
:g5
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%">>%temp%\listfinish.ttt
goto glist
:g6
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%">>%temp%\listfinish.ttt
goto glist
:g7
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%">>%temp%\listfinish.ttt
goto glist
:g8
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%">>%temp%\listfinish.ttt
goto glist
:g9
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%">>%temp%\listfinish.ttt
goto glist
:g10
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%">>%temp%\listfinish.ttt
goto glist
:g11
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%">>%temp%\listfinish.ttt
goto glist
:g12
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%">>%temp%\listfinish.ttt
goto glist
:g13
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%" "%g13%">>%temp%\listfinish.ttt
goto glist
:g14
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%" "%g13%" "%g14%">>%temp%\listfinish.ttt
goto glist
:g15
dir /a-d /b /o-d "%g1%" "%g2%" "%g3%" "%g4%" "%g5%" "%g6%" "%g7%" "%g8%" "%g9%" "%g10%" "%g11%" "%g12%" "%g13%" "%g14%" "%g15%">>%temp%\listfinish.ttt
goto glist
:g16
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
goto glist
:g17
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
goto glist
:g18
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
goto glist
:glist
echo 可写磁盘根目录及下一级目录中,共搜索出%文件数%个gho文件(不搜索光盘)
echo 列表如下(按修改日期,从新到旧排列,最多排18个)
echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
type %temp%\listfinish.ttt
echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo 以下为详细信息,(包括所有gho文件,无数量限制),注意**不完全按修改日期排序
echo 按任意键继续显示
pause>nul
for /f "delims=" %%j in (%temp%\list.ttt) do echo %%~dptznxj>>%temp%\listfinish3.ttt
echo _____________________________________________________________________
echo 文件修改日期 时间 大小(单位:字节) 文件路径、及名字
echo *********************************************************************
type %temp%\listfinish3.ttt
echo *********************************************************************
:ghost
echo 将手动运行ghost32.exe,本批处理同一个目录下需要有ghost32.exe文件
pause>nul
ghost32.exe
:end
pause
exit

这个批处理可以列出所有分区的的根目录和二级目录里面的GHO文件,能不能再继续做一个选择,选择需要恢复的GHO,然后调用GHOST来自动恢复到C盘呢?

2007-12-18 18:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 2 楼』:  

闪过~比较晕~垃圾代码一大堆,还生成大量垃圾



第一高手    第二高手

2007-12-18 19:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kavenlee72
中级用户




积分 369
发帖 87
注册 2003-9-14
状态 离线
『第 3 楼』:  

有空将我的一键恢复贴出来,就是用ghost来自动实现的。很管用

2007-12-26 23:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: