批处理操作注册表方法
常见的批处理操作注册表:
REG Operation [参数列表]
Operation [ QUERY | ADD | DELETE | COPY |
SAVE | LOAD | UNLOAD | RESTORE |
COMPARE | EXPORT | IMPORT ]
返回代码: (除了 REG COMPARE)
0 - 成功
1 - 失败
要得到有关某个操作的帮助,请键入:
REG Operation /?
例如:
REG QUERY /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?
1:
REG QUERY KeyName [/v ValueName | /ve] [/s]
KeyName [\Machine\]FullKey
Machine 远程机器名 - 忽略当前机器的默认值
远程机器上只有 HKLM 和 HKU
FullKey 格式为 ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下的注册表项的全名
/v 查询特定注册表项
ValueName 所选项下的要查询的值的名称
省略时,该项下的所有值都会得到查询
/ve 查询默认值或空白值名称<no name>
/s 查询所有子项和值
例如:
REG QUERY HKLM\Software\Microsoft\ResKit /v Version
显示注册表值 Version 的值
REG QUERY HKLM\Software\Microsoft\ResKit\r
t\Setup /s
显示注册表项 Setup 下的所有子项和值
2:
REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
KeyName [\\Machine\]FullKey
远程机器的机器名 - 忽略默认到当前机器。
远程机器上只有 HKLM 和 HKU。
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下注册表项的完整名
/v 所选项之下要添加的值名
/ve 为注册表项添加空白值名<无名称>
/t RegKey 数据类型
[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |
REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |
REG_NONE | REG_EXPAND_SZ ]
如果忽略,则采用 REG_SZ
/s 指定一个在 REG_MULTI_SZ 数据字符串中
用作分隔符的字符
如果忽略,则将 "\0" 用作分隔符
/d 要分配给添加的注册表 ValueName 的数据
/f 不用提示就强行改写现有注册表项
例如:
REG ADD \\ ABC\HKLM\Software\MyCo
添加远程机器 ABC 上的一个注册表项 HKLM\Software\MyCo
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead)
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
添加一个值(名称: MRU,类型: REG_MUTLI_SZ,数据: fax\0mail\0\0)
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%
添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%)
注意: 在扩充字符串中使用双百分比符号( %% )
3:
REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
KeyName [\\Machine\]FullKey
远程机器的机器名 - 忽略默认到当前机器。
远程机器上只有 HKLM 和 HKU。
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下注册表项的完整名
/v 所选项之下要添加的值名
/ve 为注册表项添加空白值名<无名称>
/t RegKey 数据类型
[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |
REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |
REG_NONE | REG_EXPAND_SZ ]
如果忽略,则采用 REG_SZ
/s 指定一个在 REG_MULTI_SZ 数据字符串中
用作分隔符的字符
如果忽略,则将 "\0" 用作分隔符
/d 要分配给添加的注册表 ValueName 的数据
/f 不用提示就强行改写现有注册表项
例如:
REG ADD \\ ABC\HKLM\Software\MyCo
添加远程机器 ABC 上的一个注册表项 HKLM\Software\MyCo
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead)
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
添加一个值(名称: MRU,类型: REG_MUTLI_SZ,数据: fax\0mail\0\0)
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%
添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%)
注意: 在扩充字符串中使用双百分比符号( %% )
4:
REG DELETE KeyName [/v ValueName | /ve | /va] [/f]
KeyName [\\Machine\]FullKey
Machine 远程机器名 - 忽略当前机器的默认值
远程机器上只有 HKLM 和 HKU
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下的注册表项的全名
ValueName 所选项下的要删除的值的名称
省略时,该项下的所有子项和值都会被删除
/ve 删除空白值名称<no name>的值
/va 删除该项下的所有值
/f 不用提示就强行删除
例如:
REG DELETE HKLM\Software\MyCo\MyApp\Timeout
删除注册表项 Timeout 及其所有子项和值
REG DELETE \\ ZODIAC\HKLM\Software\MyCo /v MTU
删除 ZODIAC 上 MyCo 下的注册表项 MTU
5:
REG COPY KeyName1 KeyName2 [/s] [/f]
KeyName [\\Machine\]FullKey
Machine 远程机器名 - 忽略当前机器的默认值
远程机器上只有 HKLM 和 HKU
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下的注册表项的全名
/s 复制所有子项和值
/f 不用提示就强行复制
例如:
REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp /s
将注册表项 MyApp 下的所有子项和值复制到注册表项 SaveMyApp
REG COPY \\ ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1
将 ZODIAC 上注册表项 MyCo 下的所有值
复制到当前机器上的注册表项 MyCo1
6:
REG COMPARE KeyName1 KeyName2 [/v ValueName | /ve] [Output] [/s]
KeyName [\\Machine\]FullKey
Machine 远程机器名 - 省略当前机器的默认值
远程机器上只有 HKLM 和 HKU
FullKey ROOTKEY\SubKey
如果没有指定 FullKey2,FullKey2 则跟 FullKey1 相同
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下的注册表项的全名
ValueName 所选注册表项下的要比较的值的名称
省略时,该项下的所有值都会得到比较
/ve 比较空白值<no name>名称的值
/s 比较所有子项和值
Output [/oa | /od | /os | /on]
省略时,只显示不同的结果
/oa 显示所有不同和匹配结果
/od 只显示不同的结果
/os 只显示匹配结果
/on 不显示结果
返回代码:
0 - 成功,比较的结果相同
1 - 失败
2 - 成功,比较的结果不同
例如:
REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp
将注册表项 MyApp 下的所有值跟 SaveMyApp 比较
REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version
比较注册表项 MyCo 和 MyCo1 下的值 Version
REG COMPARE \\ ZODIAC\HKLM\Software\MyCo \\. /s
将 ZODIAC 上 HKLM\Software\MyCo 下的
所有子项和值和当前机器上的相同项比较