命令行操作注册表Word文件下载.docx
《命令行操作注册表Word文件下载.docx》由会员分享,可在线阅读,更多相关《命令行操作注册表Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
最简单的用法是执行查找,例如执行Regfind\"
QQ\"
,Regfind将找出所有包含字符串“QQ”的注册键。
除了单纯的查找之外,Regfind还能够执行替换:
只需在图一的命令后加上-r选项和一个替换字符串即可。
例如,假设你公司的名称从AGroup改成了BGroup,现在你想要对注册表中所有的产品注册信息作相应的改动,只需执行:
Regfind\"
AGroup\"
-r\"
BGroup\"
。
注意,如果搜索字符串包含空格或标点符号,字符串应该用引号包围。
如果要对一台远程机器作相应的改动,只需在前面的命令后加上-m选项并指定远程机器的UNC(UniversalNamingConvention,通用命名协定)路径,例如:
Regfind-m\\server03\"
搜索整个注册表无疑是一件相当耗费时间的事情。
为了提高效率,你可以将Regfind的搜索操作限制到某个注册表的分支或子键,只需要在-p选项后面指定要搜索的注册表位置即可。
例如,假设要把搜索“AGroup”的操作限制在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft子键,并把该子键下的AGroup替换成BGroup,执行:
-p\"
HKEY_LOCAL_MACHINESOFTWARE\Microsoft\"
通过上面的说明可以看出,Regfind是一个很方便的工具,但白璧有瑕,有时候你仍会感到它不能满足要求。
首先,Regfind不支持通配符,也不支持正则表达式——而这两者对于执行复杂搜索是非常有用的。
唯一一个给搜索操作增加灵活性的选项是-y。
-y选项使得Regfind的搜索操作对大小写不敏感,即如果你执行RegfindAGroup-y,则Regfind的搜索结果中将包含AGroup、aGroup以及其他字母大小写的组合(如果没有-y选项,Regfind默认对大小写敏感,但Regfind的命令选项对大小写不敏感,例如你可以随意使用-R或-r)。
第二,如果用Regfind执行搜索/替换操作,它将替换所有找到的字符串,你不能要求Regfind只替换其中一个字符串。
勉强可算是补救策略的方法是:
将搜索操作限制在某个特定的注册表分支。
因此,我的建议是:
首先用Regfind找出所有匹配的注册子键,然后用Regfind执行全局替换或手工修改某个特定的子键。
第三,如果你想要修改数值型数据,Regfind似乎算不上最佳帮手。
这是因为,许多要处理的REG_DWORD值不是0就是1,而0和1在注册表中出现的机会实在太频繁了,很可能出现误替换的情形。
解决问题的唯一办法就是尽可能精确地限定Regfind的搜索范围
命令行方式直接修改注册表
一、CMD
cmd是windows2000中的一个小得如鸽子蛋一样的程序,是一个所谓命令行控制台。
有两条进入该程序的通道:
第一,鼠标点击"开始->运行",在出现的编辑框中键入"cmd",然后点击"确定";
第二,在启动windows2000的时候,按F8进入启动选择菜单,移动光条或键入数字至安全模式的命令行状态。
出现的窗口是一个在win9x系统常见的那种msdos方式的界面――一个黑乎乎的窗口.甚至还没有msdos方式的窗口耐看:
连常用的工具条都没有放上.我真想不通,贵为最新的操作系统,因何还保留似乎是石器时代的dos界面呢?
像往常一样,习惯性低在命令后面键入:
cmd/?
,想看看会提示些什么?
孰料出现的东西使我大吃一惊:
1.这些信息是中文的,要知道原来纯dos环境可不会直接支持中文呀!
2.有相当详细的帮助信息.3.界面虽然是命令行的,但却可以对很多深层次的项目进行操作,,例如修改注册表等等.后来的使用也证明,cmd实际上也能直接调用图形界面的程序,并在调用结束后可以返回到命令行界面.
尽管微软把这个工具当做命令解释器一个新的实例,但使用的方法却和原来的dos没有区别,打开命令行窗口之后,可以找到与dos相同的系统提示符号C:
/>
,命令必须键入在这个提示符的后面,以回车键确认。
完整的语法如下:
CMD[/A|/U][/Q][/D][/E:
ON|/E:
OFF][/F:
ON|/F:
OFF][/V:
ON|/V:
OFF][[/S][/C|/K]string]
各个参数的含义:
CMD:
是命令名称,这可省略.以下是命令所用的参数或开关.
/C执行字符串指定的命令然后终断
/K执行字符串指定的命令但保留
/S在/C或/K后修改字符串处理(见下)
/Q关闭回应
/D从注册表中停用执行AutoRun命令(见下)
/A使向内部管道或文件命令的输出成为ANSI
/U使向内部管道或文件命令的输出成为Unicode
/T:
fg设置前景/背景颜色(详细信息,请见COLOR/?
)
/E:
ON启用命令扩展(见下)
OFF停用命令扩展(见下)
/F:
ON启用文件和目录名称完成字符(见下)
OFF停用文件和目录名称完成字符(见下)
/V:
ON将c作为定界符启动延缓环境变量扩展。
如:
/V:
ON会允许!
var!
在执行时允许!
扩展变量var。
var语法在输入时扩展变量,这与在一个FOR循环内不同。
OFF停用延缓的环境扩展。
请注意,如果字符串有引号,可以接受用命令分隔符&
#39;
&
隔开的多个命令。
并且,由于兼容原因,/X与/E:
ON相同,/Y与
OFF相同,并且/R与/C相同。
忽略任何其它命令选项。
如果指定了/C或/K,命令选项后的命令行其余部分将作为命令行处理;
在这种情况下,会使用下列逻辑处理引号字符(\"
):
1.如果符合下列所有条件,那么在命令行上的引号字符将被保留:
-不带/S命令选项
-整整两个引号字符
-在两个引号字符之间没有特殊字符,特殊字符为下列中的一个:
<
>
()@^|
-在两个引号字符之间有至少一个空白字符
-在两个引号字符之间有至少一个可执行文件的名称。
2.否则,老办法是,看第一个字符是否是一个引号字符,如果是,舍去开头的字符并删除命令行上的最后一个引号字符,保留最后一个引号字符之后的文字。
如果/D未在命令行上被指定,当CMD.EXE开始时,它会寻找以下REG_SZ/REG_EXPAND_SZ注册表变量。
如果其中一个或两个都存在,这两个变量会先被执行。
HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorAutoRun
和/或
HKEY_CURRENT_USERSoftwareMicrosoftCommandProcessorAutoRun
命令扩展是按默认值启用的。
您也可以使用/E:
OFF,为某一特定调用而停用扩展。
您可以在机器上和/或用户登录会话上启用或停用CMD.EXE所有调用的扩展,这要通过设置使用REGEDT32.EXE的注册表中的一个或两个REG_DWORD值:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorEnableExtensions
HKEY_CURRENT_USERSoftwareMicrosoftCommandProcessorEnableExtensions
到0x1或0x0。
用户特定设置比机器设置有优先权。
命令行命令选项比注册表设置有优先权。
原来的dos中有所谓的内部命令和外部命令,在cmd中,引入了命令行扩展,你可以在cmd窗口中直接执行下面的扩展部分,扩展部分之前不必加cmd.
命令行扩展包括对下列命令所做的更改和/或添加:
DEL或ERASE
COLOR
CD或CHDIR
MD或MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START(同时包括对外部命令调用所做的更改)
ASSOC
FTYPE
有关详细信息,请键入HELP命令名。
二、REG
WindowsXP提供的reg命令行就可以做到。
Reg:
添加、更改和显示注册表项中的注册表子项信息和值。
regadd:
将新的子项或项添加到注册表中。
语法:
regaddKeyName[/vEntryName|/ve][/tDataType][/sseparator][/dvalue][/f]
参数:
KeyName
指定子项的完全路径。
对于远程计算机,请在\\\\ComputerName\\PathToSubkey中的子项路径前包含计算机名称。
忽略ComputerName会导致默认对本地计算机进行操作。
以相应的子目录树开始路径。
有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。
/vEntryName:
指定要添加到指定子项下的项名称。
/ve:
指定添加到注册表中的项为空值。
/tDataType:
指定项值的数据类型。
DataType可以是以下几种类型:
REG_SZ
REG_MULTI_SZ
REG_DWORD_BIG_ENDIAN
REG_DWORD
REG_BINARY
REG_DWORD_LITTLE_ENDIAN
REG_LINK
REG_FULL_RESOURCE_DEscrīptOR
REG_EXPAND_SZ
/sseparator:
指定用于分隔多个数据实例的字符。
当REG_MULTI_SZ指定为数据类型且需要列出多个项时,请使用该参数。
如果没有指定,将使用默认分隔符为\\。
/dvalue:
指定新注册表项的值。
/f:
不用询问信息而直接添加子项或项。
/?
:
在命令提示符显示帮助。
注释:
该操作不能添加子树。
该版本的Reg在添加子项时无需请求确认。
下表列出了regadd操作的返回值。
值说明:
0成功
1失败
范例
下列范例说明了如何使用regadd命令:
regadd\\hklm\\software\\myco/vdata/treg_binary/dfe340ead
regadd\"
hkcu\\software\\microsoft\\winmine\"
/vName3/treg_sz/dAnonymous
/vTime3/treg_dword/d5
regcompare:
比较指定的注册表子项或项。
regcompareKeyName1KeyName2[/vEntryName|/ve]{[/oa]|[/od]|[/os]|[on]}
KeyName:
指定子项的完全路径。
如果指定远程计算机,则只可使用HKLM和HKU子目录树。
比较子项下的特定项。
指定只可以比较没有值的项。
{[/oa]|[/od]|[/os]|[on]}:
指定不同点和匹配点的显示方式。
默认设置是/od。
/oa指定显示所有不同点和匹配点。
默认情况下,仅列出不同点。
/od指定仅显示不同点。
这是默认操作。
/os指定仅显示匹配点。
/on指定不显示任何内容。
/sSeparator:
比较所有子项和项。
下表列出了regcompare操作的返回值。
0比较成功且结果相同。
1比较失败。
2比较成功并找到不同点。
范例:
下面的范例说明了如何使用regcompare命令:
regcompare\"
\"
/od/s
regcopy:
将一个注册表项复制到本地或远程计算机的指定位置。
regcopyKeyName1KeyName2[/f]
KeyName1:
指定要复制子项的完整路径。
KeyName2:
指定子项目的地的完整路径。
/s:
复制指定子项下的所有子项和项。
无需请求确认而直接复制子项。
该版本的Reg在复制子项时无须请求确认。
下表列出了regcopy操作的返回值。
下列范例说明了如何使用regcopy命令:
regcopy\"
hkcu\\software\\microsoft\\winminebk\"
/s/f
/s
regdelete:
从注册表删除项或子项
语法
regdeleteKeyName[{/vEntryName|/ve|/va}][/f]
参数
删除子项下的特定项。
如果未指定项,则将删除子项下的所有项和子项。
指定只可以删除为空值的项。
/va:
删除指定子项下的所有项。
使用本参数不能删除指定子项下的子项。
无需请求确认而删除现有的注册表子项或项。
下表列出了regdelete操作的返回值。
下面的范例说明了如何使用regdelete命令:
regdelete\"
/vName1
/vTime1
/va
regexport:
将指定子项、项和值的副本创建到文件中,以便将其传输到其它服务器。
regexportKeyNameFileName
Export操作仅可在本地计算机上工作。
FileName:
指定要导出文件的名称和路径。
该文件必须具有.reg扩展名。
下表列出了regexport操作的返回值。
下面的范例说明了如何使用regexport命令:
regexport\"
c:
\\data\\regbackups\\wmbkup.reg
regimport:
将包含导出的注册表子项、项和值的文件复制到本地计算机的注册表中。
regimportFileName
指定将复制到本地计算机注册表中的文件的名称和路径。
必须预先使用regexport命令创建该文件。
下表列出了regimport操作的返回值。
下面的范例说明了如何使用regimport命令:
regimporthkcu\\software\\microsoft\\winmine\"
regload:
将保存的子项和项写回到注册表的不同子项中。
其目的是保存到一个临时文件中,而该文件可用于注册表项的疑难解答或编辑注册表项。
regloadKeyNameFileName
指定要加载的文件的名称和路径。
必须使用带.hiv扩展名的regsave操作创建该文件。
下表列出了regload操作的返回值。
下面的范例说明了如何使用regload命令:
regload\"
hkcu\\software\\microsoft\\winminebk2\"
wmbkup.hiv
regquery:
返回注册表的子项下的项和下一层子项的列表。
regqueryKeyName[{/vEntryName|/ve}]
返回特定的项及其值。
该参数只返回直接位于指定子项的下一层中的项。
将会找不到当前子项下的子项中的项。
如果省略EntryName,则将返回子项下的所有项。
指定仅返回为空值的项。
将返回各个层中的所有子项和项。
如果不使用该参数,将只返回下一层的子项和项。
下表列出了regquery操作的返回值。
下面的范例说明了如何使用regquer