中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 纯DOS下备份注册表的批处理!
作者:
标题: 纯DOS下备份注册表的批处理! 上一主题 | 下一主题
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『楼 主』:  纯DOS下备份注册表的批处理!

小菜我近日写的,可能还有小的错误!
1日晚间写完后结果没备份,硬盘还原了~~呜呜......
今天终于又弄会来了!

请高手看看是否有更改的地方,能否在优化和精简!谢谢各位了!

:BFC
set FQ=C>unl
goto BF

:BFD
set FQ=D>unl

:BF
CLS
ECHO.
ECHO.
ECHO 正在备份"%FQ%:\WINDOWS\SYSTEM32\CONFIG"中的注册表文件,请稍候......
dirt.com  H:\系统备份\注册表BF\  /q>unl
if %DirtRet%==Success goto BF1
MD  H:\系统备份\注册表BF>unl

:BF1
ATTRIB -H  -R  H:\系统备份\注册表BF  /s>unl
dirt.com  H:\系统备份\注册表BF\恢复%FQ%盘.BAT  /q>unl
if %DirtRet%==Fail goto BF2
DELTREE.EXE /y H:\系统备份\注册表BF\%FQ%盘>unl
del H:\系统备份\注册表BF\恢复%FQ%盘.BAT

:BF2
MD  H:\系统备份\注册表BF\%FQ%盘>unl
echo @ECHO OFF>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
echo ATTRIB -H  -R  H:\系统备份\注册表BF  /s>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
echo :1>>  H:\系统备份\注册表BF\恢复%FQ%盘.bat

:system
if [%DAT%]==[system] goto software
set DAT=system>unl
goto config

:software
if [%DAT%]==[software] goto SECURITY
set DAT=software>unl
goto config

:SECURITY
if [%DAT%]==[SECURITY] goto SAM
set DAT=SECURITY>unl
goto config

:SAM
if [%DAT%]==[SAM] goto DEFAULT
set DAT=SAM>unl
goto config

:DEFAULT
if [%DAT%]==[DEFAULT] goto DAT1
set DAT=DEFAULT>unl

:config
ATTRIB -H -S -R  %FQ%:\WINDOWS\system32\config\%DAT%>unl
copy  %FQ%:\WINDOWS\system32\config\%DAT%       H:\系统备份\注册表BF\%FQ%盘>unl
ATTRIB +H   %FQ%:\WINDOWS\system32\config\%DAT%>unl
echo ATTRIB -H -S -R %FQ%:\WINDOWS\system32\config\%DAT%>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
echo copy  H:\系统备份\注册表BF\%FQ%盘\%DAT%   %FQ%:\WINDOWS\system32\config>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
echo ATTRIB +H   %FQ%:\WINDOWS\system32\config\%DAT%>unl>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
goto %DAT%

:DAT1
set DAT=NTUSER>unl
cls
@ECHO.
@ECHO.
@ECHO 正在备份"%FQ%盘"中的个人配置注册表文件"%DAT%.DAT",请稍候......
echo :2>> H:\系统备份\注册表BF\恢复%FQ%盘.bat
dirt.com  %FQ%:\DOCUME~1\%DAT%.DAT   /L:2   /Out2Env>unl
goto DAT3

:DAT2
set DAT=UsrClass>unl
cls
@ECHO.
@ECHO.
@ECHO 正在备份"%FQ%盘"中的个人配置注册表文件"%DAT%.DAT",请稍候......
dirt.com  %FQ%:\DOCUME~1\%DAT%.DAT   /L:6   /Out2Env>unl

:DAT3
SET DR=%O2E_Driver0%>unl
SET PA=%O2E_Path0%>unl
SET FN=%O2E_FName0%>unl
SET ML=0%DAT%>unl
SET PD=0000>unl
goto DAT

:0000
SET DR=%O2E_Driver1%>unl
SET PA=%O2E_Path1%>unl
SET FN=%O2E_FName1%>unl
SET ML=1%DAT%>unl
SET PD=1111>unl
goto DAT

:1111
SET DR=%O2E_Driver2%>unl
SET PA=%O2E_Path2%>unl
SET FN=%O2E_FName2%>unl
SET ML=2%DAT%>unl
SET PD=2222>unl
goto DAT

:2222
SET DR=%O2E_Driver3%>unl
SET PA=%O2E_Path3%>unl
SET FN=%O2E_FName3%>unl
SET ML=3%DAT%>unl
SET PD=3333>unl
goto DAT

:3333
SET DR=%O2E_Driver4%>unl
SET PA=%O2E_Path4%>unl
SET FN=%O2E_FName4%>unl
SET ML=4%DAT%>unl
SET PD=4444>unl
goto DAT

:4444
SET DR=%O2E_Driver5%>unl
SET PA=%O2E_Path5%>unl
SET FN=%O2E_FName5%>unl
SET ML=5%DAT%>unl
SET PD=5555>unl
goto DAT

:5555
SET DR=%O2E_Driver6%>unl
SET PA=%O2E_Path6%>unl
SET FN=%O2E_FName6%>unl
SET ML=6%DAT%>unl
SET PD=6666>unl
goto DAT

:6666
SET DR=%O2E_Driver7%>unl
SET PA=%O2E_Path7%>unl
SET FN=%O2E_FName7%>unl
SET ML=7%DAT%>unl
SET PD=7777>unl
goto DAT

:7777
SET DR=%O2E_Driver8%>unl
SET PA=%O2E_Path8%>unl
SET FN=%O2E_FName8%>unl
SET ML=8%DAT%>unl
SET PD=8888>unl
goto DAT

:8888
SET DR=%O2E_Driver9%>unl
SET PA=%O2E_Path9%>unl
SET FN=%O2E_FName9%>unl
SET ML=9%DAT%>unl
SET PD=9999>unl
goto DAT

:9999
goto exit

:DAT
if [%FN%]==[] goto exit
MD  H:\系统备份\注册表BF\%FQ%盘\%ML%>unl
ATTRIB -H -S -R  %Dr%\%Pa%\%FN%>unl
copy  %Dr%\%Pa%\%FN% H:\系统备份\注册表BF\%FQ%盘\%ML%>unl
ATTRIB +H %Dr%\%Pa%\%FN%>unl
echo ATTRIB -H -S -R %Dr%\%Pa%\%FN%>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
echo copy H:\系统备份\注册表BF\%FQ%盘\%ML%\%FN% %Dr%\%Pa%>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
echo ATTRIB +H %Dr%\%Pa%\%FN%>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
goto %PD%

:EXIT
if [%DAT%]==[NTUSER] goto DAT2
echo ATTRIB +H  +R  H:\系统备份\注册表BF  /s>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
echo CLS>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
echo @ECHO.>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
echo @ECHO.>>H:\系统备份\注册表BF\恢复%FQ%盘.bat
ATTRIB +H  +R  H:\系统备份\注册表BF  /s>unl
dirt /ClearEnv>unl
set FQ=>unl
set DAT=>unl
set CMDLINE=>unl
SET DR=>unl
SET PA=>unl
SET FN=>unl
SET ML=>unl
SET PD=>unl

:TC
cls
@ECHO.
@ECHO.

2006-11-5 02:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xuantian
高级用户





积分 587
发帖 282
注册 2006-4-10
状态 离线
『第 2 楼』:  

这没用 ^.^



个人网盘
2006-11-6 05:11
查看资料  发送邮件  发短消息 网志  OICQ (315594066)  编辑帖子  回复  引用回复
honhaizh
初级用户





积分 35
发帖 18
注册 2006-4-26
状态 离线
『第 3 楼』:  

dirt.com做什么的?

2006-11-16 20:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: