2007-04-16, 04:27 PM | #1 |
注册日期: 2003-10-22
帖子: 11,051
积分:6
精华:24
现金:14342金币
资产:29325299金币
|
【转贴】DOS下完美处理Windows系统注册表的方法
引言:首先要说明一个问题,就是为什么不在windows下直接编辑注册表,而要拐弯抹角到DOS下去处理?这里举个例大家就明白了,HKEY_LOCAL_MACHINE\SYSTEM\WPA这个键下的值,能编辑吗?这里微软记录了你的系统曾经用过的序列号,当然不允许你随便更改,也就无法抹除自己的盗版史;还有那个流氓中文上网官方游,在发现低版本的第三方软件试图删除它时,也会锁定注册表让你无法清理它。好在有DOS这样优秀的系统,There is no locked file in the Disk Operation System.经过一个下午的折腾,终于把这款在DOS下完美处理注册数据的软件GhRegEdt搞明白了。下面就把我使用这款软件的心得体会跟大家分享交流。 提问:我的系统是NTFS格式的,在DOS下能处理注册表吗? 回答:NTFS格式分区已经出来差不多8年了,现在新出来的DOS软件基本上都支持NTFS格式分区的数据处理了,我介绍的这款软件GhRegEdt当然支持在NTFS格式分区的系统。 提问:它是哪里来的? 回答:它来自于Symantec Ghost Solution Suite 2.0 提问:它能处理64位Windows系统吗? 回答:在DOS下无法编辑处理64位Windows系统的注册表 提问:如何使用? 回答:直接输入GhRegEdt,就会出现帮助信息,但是有那么一点晦涩难懂,所以这里我会对注册表的每种操作都举实例,这样就方便大家依葫芦画瓢了。 1、定位需要处理哪个windows系统的注册表(只有一个windows系统的可以略过此条)。 输入: 代码:
GhRegEdt Windows 2、最简单的注册表操作,当然就是增删注册表项(Addkey/Delkey) 1)增加注册表项(Addkey) 例如我们要在HKEY_LOCAL_MACHINE\SOFTWARE这项里面加一个项test,那么应该执行命令: 代码:
GhRegEdt addkey 1.1:\windows HKEY_LOCAL_MACHINE\SOFTWARE\test 代码:
GhRegEdt addkey HKEY_LOCAL_MACHINE\SOFTWARE\test 删除刚才建立的test项 代码:
GhRegEdt delkey HKEY_LOCAL_MACHINE\SOFTWARE\test 3、增删注册表键值(Addvalue/Delvalue) 注册表值的类型有五种,包括: i)字符串值(REG_SZ); ii)二进制值(REG_BINARY); iii)DWORD 值(REG_DWORD); iv)多字符串值(REG_MULTI_SZ); v)可扩充字符串值(REG_EXPAND_SZ) GhRegEdt能支持所有windows里有的注册表值! 例如我们要在刚才那个添加的注册表项里增加一个字符串值a b c d,并且将其值设为1234,就可以执行如下命令: 代码:
GhRegEdt addvalue HKEY_LOCAL_MACHINE\SOFTWARE\test "a b c d" REG_SZ 1234 代码:
GhRegEdt addvalue HKEY_LOCAL_MACHINE\SOFTWARE\test a REG_SZ 1234 删除它就很简单啦!把addvalue换成delvalue就OK! 什么?你问我更改键值用什么参数!很简单啦,直接以创建的形式就OK,会覆盖原值的,不用专门的参数! 增删多字符串值要稍稍复杂一些,也举例说明,例如我们要在test键下增加多字符串值a b c d,并将其值设为1和2和3和My Dear,那么应该执行如下命令: 代码:
GhRegEdt addvalue HKEY_LOCAL_MACHINE\SOFTWARE\test "a b c d" REG_MULTI_SZ :: "1"::"2"::"3"::"My Dear":: 4、查看注册表(enumkey/enumvalue) 1)展开子键(enumkey) 非常不推荐在DOS下查看,因为子键往往很多,在DOS下要翻屏,看不到前面的了,如果实在要看,建议加入|more(前提是你的DOS系统有这个外部命令)来停屏滚! 举例,要查看HKEY_LOCAL_MACHINE\SOFTWARE的子键 代码:
GhRegEdt enumkey HKEY_LOCAL_MACHINE\SOFTWARE|more 举例,要查看开头我们建立的test键的值 代码:
GhRegEdt enumvalue HKEY_LOCAL_MACHINE\SOFTWARE\test 这个主要用于注册表的备份与恢复,特别提醒的是,GhRegEdt默认只支持英文,如果要想它支持中文,必须加入中国地区代码,也就是加入参数-cp=936! 中文windows系统的注册表,必然含有中文,所以在导入导出时,就要加入上述参数,在添加键值时,如果有中文,也必须加入上述参数! 1)导出注册表 举例,导出HKEY_LOCAL_MACHINE\SOFTWARE\test到第一个硬盘第一个分区根目录成注册表文件a.reg 代码:
GhRegEdt -cp=936 export 1.1:\a.reg HKEY_LOCAL_MACHINE\SOFTWARE\test 把刚才导出的注册表文件重新导入,这个就简单了,不用在命令行加入路径 代码:
GhRegEdt -cp=936 import 1.1:\a.reg |
|