- 欢迎访问起航教学!
用批处理做备份注册表程序
12-14 18:34:03 分类:电脑技巧 浏览次数: 855次大家知道,WINDOWS操作系统对注册表的保护有一个非常实用的功能,就是系统在用户当天第一次开机时会自动将WINDOWS目录下的
SYSTEM.DAT SYSTEM.INI USER.DAT WIN.INI
这四个注册表文件打成CAB包存放在WINDOWSSYSBCKUP目录下,由于系统默认保存最近5个开机日备份的注册表文件包,所以它们分别以rb000.cab~rb004.cab命名存放。
对于这个CAB文件包,我们可以在DOS状态下用WINDOWSCOMMAND目录下的EXTRACT.EXE来解压,也可以在DOS状态下进入windows目录用命令:
scanreg.exe/restore
来恢复注册表。相信WINDOWS提供的这个功能一定帮助了不少的注册表狂热分子来对付注册表崩溃吧?但每次恢复都要记住这些命令,参数,路径,实在是太麻烦啦。大家有没有想过自已也来做一个每日第一次开机自动备份注册表文件呢?其实我们完全可以通过批处理来完成这一功能,下面这个批处理就是只在每日第一次开机时备份注册表文件到一个自定义的文件夹,恢复时只要直接把文件拷贝过去,或者再做一个批处理,让它自动恢复就行啦。是不是方便多了呢?
下面来看看如何做这个批处理文件:
1、首先在C:新建一个供操作的目录:regback
C:MD REGBACK
2、在该目录下做一个当日日期文件date1.txt
c:echo.|date>c:regbackdate1.txt
由于DATE命令是一个显示与修改当前日期的命令,当不需要修改日期时,则需要由用户按回车键结束这个命令,为了尽量减少在程序实现过程中的人为干预,我在这里用管道命令将ECHO.产生的回车传递给date命令,以达到DATE命令能自动完成的目的。在下面的批处理中还将要用到这一命令。
3、新建一个regback.bat文件,并用记事本打开输入以下内容:
- echo off \关闭回显
- echo.|date>c:regbackdate2.txt \新建一个当日日期文件 date2.txt
- cls
- fc c:regbackdate1.txt c:regbackdate2.txt>c:regbackfc.txt \对比已有的
- 日期文件与今日日期文件并将对比结果保存为fc.txt
- type c:regbackfc.txt|find "-" \查找对比结
- 果中是否存在日期分隔符"-",如果有则说明两日期
- 文 件不相同(即不是同一天的日期文件).
- if errorlevel 1 goto noback \如果没有找
- 到"-"即两个日期文件为同一天日期文件,转至noback
- REM **如果两个日期文件不相同,则执行以下程序***
- del c:regback*.dat
- del c:regback*.ini \删除当前的过期备份
- cd regback
- attrib -s -h -r c:windowssystem.dat
- copy c:windowssystem.dat
- attrib +s +h +r c:windowssystem.dat
- attrib -s -h -r c:windowssystem.ini
- copy c:windowssystem.ini
- attrib +s +h +r c:windowssystem.ini
- attrib -s -h -r c:windowsuser.dat
- copy c:windowsuser.dat
- attrib +s +h +r c:windowsuser.dat
- attrib -s -h -r c:windowswin.ini
- copy c:windowswin.ini
- attrib +s +h +r c:windowswin.ini \以上操作是备份注册表文件
- del date1.txt
- ren date2.txt date1.txt \完成日期文件的更新
- del fc.txt
- echo Back up and finish ! \显示备份完成提示
- goto end \备份完成,转向END
- :noback \NOBACK分支,当两个日期文件
- 相同(即同日的日期文件)时执行这 个分支
- echo today is backup \显示提示:今日已备份过注册表文件
- del c:regbackdate2.txt
- del c:regbackfc.txt \删除产生的垃圾文件
- :end
4、将以上bat文件保存到C:下,并在autoexec.bat中加入一句
call regback.bat
call命令的功能是在DOS批处理文件中调用另一个批处理而不会引起本批处理程序中断,它所调用的批处理可以是一个带参数的批处理程序。这样,在每次启动计算机时,就会自动运行这个批处理,但这个批处理只会在每天的第一次开机时备份注册表。
经过以上操作之后,我们可以试着运行一下这个批处理程序,你会发现屏幕提示(如图today.jpg)是:today is backup,这是因为date1.txt是我们今天用手动产生的日期文件,与批处理产生的date2.txt是同一天的日期文件,所以它不会备份注册表。进入c:regback打开date1.txt,把日期:04-22-2003更改为:04-21-2003,再运行看看,是不是提示备份注册表完成?(如图:finish.jpg)
你还可以很轻易地做一个注册表还原批处理,这样,就算以后注册表崩溃了,也不用费脑筋去想那些路径命令什么的了^_^
regback.bat清单
*******************************************************
echo off
echo.|date>c:regbackdate2.txt
cls
fc c:regbackdate1.txt c:regbackdate2.txt>c:regbackfc.txt
type c:regbackfc.txt|find "-"
if errorlevel 1 goto noback
REM **如果两个日期文件不相同,则执行以下程序***
del c:regback*.dat
del c:regback*.ini
cd regback
attrib -s -h -r c:windowssystem.dat
copy c:windowssystem.dat
attrib +s +h +r c:windowssystem.dat
attrib -s -h -r c:windowssystem.ini
copy c:windowssystem.ini
attrib +s +h +r c:windowssystem.ini
attrib -s -h -r c:windowsuser.dat
copy c:windowsuser.dat
attrib +s +h +r c:windowsuser.dat
attrib -s -h -r c:windowswin.ini
copy c:windowswin.ini
attrib +s +h +r c:windowswin.ini
del date1.txt
ren date2.txt date1.txt
del fc.txt
echo Back up and finish !
goto end
:noback
echo today is backup
del c:regbackdate2.txt
del c:regbackfc.txt
:end
相关热词搜索:
- ·上一篇:怎样修改Windows文件夹的颜色
- ·下一篇:“系统资源不足”七种解决方法
评论排行
电脑技巧 热门排行
- · windows server 2017远程桌面
- · 解决windows蓝屏显示“Stop 0x000
- · Windows 2017系统优化小技巧
- · 在Windows XP/2017中自定义文件缩
- · stop:c00020171a unknown hard error
- · NTFS下Win2017密码丢失怎么办
- · win2017启动正常,而winxp无法启动
- · 安装Office2017双击却无法直接打怎么办
- · 为何你的迅雷下载速度越来越慢
- · 简单提高迅雷下载速度的方法
- · Alt键的12个使用秘诀
- · 笔记本GPRS上网图解教程
- · 我就不关机 拒绝别人关闭计算机
- · 在机房远程关机
- · Windows 7家庭网络共享设置图解
- · 严禁迅雷偷偷上传!
- · 限制迅雷上传速度
- · 轻松解救无法启动的系统组策略
- · 无法升级安装win7 sp1的解决办法
- · 蠕虫和木马常改的系统文件及注册表
- · 教你如何20秒神速进入win XP操作系统
- · 最早黑客:揭秘世界第一批女性电脑高手
- · 在Windows7中新建磁盘分区的方法
- · Vista系统中如何用U盘制作密码重设盘