批处理 注册表问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 15:10:20
我想用批处理bat文件完成这样的功能:自动搜索注册表中含有“xxx”字符的项,并删除。
哪些该删哪些不该删我也大致清楚,只想知道能不能实现。先谢谢三位。
k4me,先谢了,为什么超级兔子,优化大师什么的可以完成呢,他们怎么做的?

可以实现,理论不难,就是实现起来忒麻烦些......
本打算做完它,不过遭遇太多麻烦事儿.罢了.
按过程说一下
-----先是在一定权限下导出注册表内容.
reg export "HKLM" k4me_1.reg /nt4
reg export "HKCU" k4me_2.reg /nt4
reg export "HKCR" k4me_3.reg /nt4
reg export "HKU" k4me_4.reg /nt4
reg export "HKCC" k4me_5.reg /nt4
------
然后用批处理的For提取每个REG文件的行,用Find找其中的关键字比如"xxx",如果找到,根据开头是否为"["来判断是否为键,如果是,就在"["之后加入减号形成"[-xxxxxxxx",然后把此行存到最终REG文件中.
如果行是如此的
"dbl5"="xxx"
则替换等号后面的数据,形成
"dbl5"=-
并写入最终REG文件中.
遇到
@="C:..xxx"就替换为@=-

......当所有注册文件处理之后,regedit /s k4me_最终.reg把数据导入注册表,也就是删除那些配置好的键和键值.结束过程.
---------------------
这里提下遇到的麻烦.
注册表导出的数据中存在大量16进制数据,是分行存储的,批处理处理它需要编写大量无味的代码.
如果用这种方式提取:
reg query "HKU" /s|find "xxx"
输出的信息是需要重组才能做成REG文件的,用批处理作太不人道:P
另外还有些中文和空格,TAB的问题需要处理,比如直接输出的注册文件很多都被破坏了