标题: 纯DOS下备份注册表的批处理!
[打印本页]
作者: 0451lym
时间: 2006-11-5 02: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.
作者: xuantian
时间: 2006-11-6 05:11
这没用 ^.^
作者: honhaizh
时间: 2006-11-16 20:24
dirt.com做什么的?