45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:在CMD下修改注册表的步骤

在CMD下修改注册表的步骤

2016-08-29 08:25:41 来源:www.45fan.com 【

在CMD下修改注册表的步骤

ALLyeSNO注:先来段精彩的

【 本文未包含zzzevazzz 写的do all in cmd 里面使用inf 修改注册表的 方法 】

regedit虽是gui下使用的东东 但其实是有未公开的参数的 可以在cmd下使用

regedit的运行参数

REGEDIT [/L:system] [/R:user] filename1
REGEDIT [/L:system] [/R:user] /C filename2
REGEDIT [/L:system] [/R:user] /E filename3 [regpath]
/L:system Specifies the location of the SYSTEM.DAT file.
/R:user Specifies the location of the USER.DAT file.
filename1 Specifies the file(s) to import into the regist
/C filename2 Specifies the file to create the registry from.
/E filename3 Specifies the file to export the registry to.
regpath Specifies the starting registry key to export from.
(Defaults to exporting the entire registry).
/S (Windows) Silent - no message on completion.





从Windows命令行快速操作注册表


每一个熟悉Windows的人都相信,通过注册表几乎可以做到任何事情,真正的问题是怎样迅速找到正确的注册键。

绝大多数情形下,操作注册表意味着找到某个特定的子键;偶尔地,可能需要修改一下子键的名称(例如,可能要进行结构上的改动)。那么,怎样才能迅速找到正确的子键并执行修改?另外,如果你不仅要改动本地机器的注册表,而且还要对
远程机器作同样的修改,
该怎么办?本文告诉你一个好工具Regfind。Regfind可以从Windows 2000 Server的Resource Kit Supplement One找到,或者从网上下载。Regfind适用于Windows的各个版本,包括Windows 9x系列。

Regfind是一个命令行工具。不带任何选项执行Regfind,它将显示出帮助信息。最简单的用法是执行查找,例如执行Regfind "QQ",Regfind将找出所有包含字符串“QQ”的注册键,如图一所示。

除了单纯的查找之外,Regfind还能够执行替换:只需在图一的命令后加上-r选项和一个替换字符串即可。例如,假设你公司的名称从AGroup改成了BGroup,现在你想要对注册表中所有的产品注册信息作相应的改动,只需执行:Regfind "AGroup" -r "BGroup"。注意,如果搜索字符串包含空格或标点符号,字符串应该用引号包围。

如果要对一台远程机器作相应的改动,只需在前面的命令后加上-m选项并指定远程机器的UNC(Universal Naming Convention,通用命名协定)路径,例如:Regfind -m\\server03 "AGroup" -r "BGroup"。

搜索整个注册表无疑是一件相当耗费时间的事情。为了提高效率,你可以将Regfind的搜索操作限制到某个注册表的分支或子键,只需要在-p选项后面指定要搜索的注册表位置即可。例如,假设要把搜索“AGroup”的操作限制在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft子键,并把该子键下的AGroup替换成BGroup,执行:Regfind "AGroup" -r "BGroup" -p "HKEY_LOCAL_MACHINESOFTWARE\Microsoft"。

通过上面的说明可以看出,Regfind是一个很方便的工具,但白璧有瑕,有时候你仍会感到它不能满足要求。首先,Regfind不支持通配符,也不支持正则表达式——而这两者对于执行复杂搜索是非常有用的。唯一一个给搜索操作增加灵活性的选项是-y。-y选项使得Regfind的搜索操作对大小写不敏感,即如果你执行Regfind AGroup -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 启用命令扩展(见下)
?? /E:OFF 停用命令扩展(见下)
?? /F:ON 启用文件和目录名称完成字符 (见下)
?? /F:OFF 停用文件和目录名称完成字符(见下)
?? /V:ON 将 c 作为定界符启动延缓环境变量扩展。如: /V:ON 会
?? 允许 !var! 在执行时允许 !var! 扩展变量 var。var 语法
?? 在输入时扩展变量,这与在一个 FOR 循环内不同。
?? /V:OFF 停用延缓的环境扩展。
??
?? 请注意,如果字符串有引号,可以接受用命令分隔符 '&&' 隔开
?? 的多个命令。并且,由于兼容原因,/X 与 /E:ON 相同,/Y 与
?? /E:OFF 相同,并且 /R 与 /C 相同。忽略任何其它命令选项。
??
?? 如果指定了 /C 或 /K,命令选项后的命令行其余部分将作为命令行处理;在这种情况下,会使用下列逻辑处理引号字符("):
??
?? 1. 如果符合下列所有条件,那么在命令行上的引号字符将被
?? 保留:
??
?? - 不带 /S 命令选项
?? - 整整两个引号字符
?? - 在两个引号字符之间没有特殊字符,特殊字符为下列中的
?? 一个: <>()@^|
?? - 在两个引号字符之间有至少一个空白字符
?? - 在两个引号字符之间有至少一个可执行文件的名称。
??
?? 2. 否则,老办法是,看第一个字符是否是一个引号字符,如果是,舍去开头的字符并删除命令行上 的最后一个引号字符, 保留最后一个引号字符之后的文字。如果 /D 未在命令行上被指定,当 CMD.EXE 开始时,它会寻找以下 REG_SZ/REG_EXPAND_SZ 注册表变量。如果其中一个或两个都存在,这两个变量会先被执行。
?? HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorAutoRun
?? 和/或
?? HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorAutoRun
?? 命令扩展是按默认值启用的。您也可以使用 /E:OFF,为某一特定调用而停用扩展。您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的扩展,这要通过设置使用REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值:
?? HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorEnableExtensions
?? 和/或
?? HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorEnableExtensions
?? 到 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添加、更改和显示注册表项中的注册表子项信息和值。

若要查看该命令语法,请单击以下命令:

reg add

将新的子项或项添加到注册表中。

语法
reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]

参数
KeyName
指定子项的完全路径。对于远程计算机,请在
//ComputerName/PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。
/v EntryName
指定要添加到指定子项下的项名称。
/ve
指定添加到注册表中的项为空值。
/t DataType
指定项值的数据类型。DataType 可以是以下几种类型:

REG_SZ

REG_MULTI_SZ

REG_DWORD_BIG_ENDIAN

REG_DWORD

REG_BINARY

REG_DWORD_LITTLE_ENDIAN

REG_LINK

REG_FULL_RESOURCE_DESCRIPTOR

REG_EXPAND_SZ

/s separator
指定用于分隔多个数据实例的字符。当 REG_MULTI_SZ 指定为数据类型且需要列出多个项时,请使用该参数。如果没有指定,将使用默认分隔符为 /。
/d value
指定新注册表项的值。
/f
不用询问信息而直接添加子项或项。
/?
在命令提示符显示帮助。
注释
该操作不能添加子树。该版本的 Reg 在添加子项时无需请求确认。
下表列出了 reg add 操作的返回值。 值 说明
0 成功
1 失败

范例
下列范例说明了如何使用 reg add 命令:

reg add /hklm/software/myco /v data /t reg_binary /d fe340ead
reg add "hkcu/software/microsoft/winmine" /v Name3 /t reg_sz /d Anonymous
reg add "hkcu/software/microsoft/winmine" /v Time3 /t reg_dword /d 5

reg compare

比较指定的注册表子项或项。

语法
reg compare KeyName1 KeyName2 [/v EntryName | /ve] {[/oa]|[/od]|[/os]|[on]} [/s]

参数
KeyName
指定子项的完全路径。对于远程计算机,请在
//ComputerName/PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录树。
/v EntryName
比较子项下的特定项。
/ve
指定只可以比较没有值的项。
{[/oa]|[/od]|[/os]|[on]}
指定不同点和匹配点的显示方式。默认设置是 /od。 值 说明
/oa 指定显示所有不同点和匹配点。默认情况下,仅列出不同点。
/od 指定仅显示不同点。这是默认操作。
/os 指定仅显示匹配点。默认情况下,仅列出不同点。
/on 指定不显示任何内容。默认情况下,仅列出不同点。

/s Separator
比较所有子项和项。
/?
在命令提示符显示帮助。
注释
下表列出了 reg compare 操作的返回值。 值 说明
0 比较成功且结果相同。
1 比较失败。
2 比较成功并找到不同点。

范例
下面的范例说明了如何使用 reg compare 命令:

reg compare "hkcu/software/microsoft/winmine" "hkcu/software/microsoft/winmine" /od /s

reg copy

将一个注册表项复制到本地或远程计算机的指定位置。

语法
reg copy KeyName1 KeyName2 [/s] [/f]

参数
KeyName1
指定要复制子项的完整路径。对于远程计算机,请在
//ComputerName/PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录树。
KeyName2
指定子项目的地的完整路径。对于远程计算机,请在
//ComputerName/PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录树。
/s
复制指定子项下的所有子项和项。
/f
无需请求确认而直接复制子项。
/?
在命令提示符显示帮助。
注释
该版本的 Reg 在复制子项时无须请求确认。
下表列出了 reg copy 操作的返回值。 值 说明
0 成功
1 失败

范例
下列范例说明了如何使用 reg copy 命令:

reg copy "hkcu/software/microsoft/winmine" "hkcu/software/microsoft/winminebk" /s /f
reg copy "hkcu/software/microsoft/winminebk" "hkcu/software/microsoft/winmine" /s

reg delete

从注册表删除项或子项

语法
reg delete KeyName [{/v EntryName|/ve|/va}] [/f]

参数
KeyName
指定子项的完全路径。对于远程计算机,请在
//ComputerName/PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。
/v EntryName
删除子项下的特定项。如果未指定项,则将删除子项下的所有项和子项。
/ve
指定只可以删除为空值的项。
/va
删除指定子项下的所有项。使用本参数不能删除指定子项下的子项。
/f
无需请求确认而删除现有的注册表子项或项。
/?
在命令提示符显示帮助。
注释
下表列出了 reg delete 操作的返回值。 值 说明
0 成功
1 失败

范例
下面的范例说明了如何使用 reg delete 命令:

reg delete "hkcu/software/microsoft/winmine" /v Name1
reg delete "hkcu/software/microsoft/winmine" /v Time1
reg delete "hkcu/software/microsoft/winmine" /va

reg export

将指定子项、项和值的副本创建到文件中,以便将其传输到其它服务器。

语法
reg export KeyName FileName

参数
KeyName
指定子项的完全路径。Export 操作仅可在本地计算机上工作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。
FileName
指定要导出文件的名称和路径。该文件必须具有 .reg 扩展名。
/?
在命令提示符显示帮助。
注释
下表列出了 reg export 操作的返回值。 值 说明
0 成功
1 失败

范例
下面的范例说明了如何使用 reg export 命令:

reg export "hkcu/software/microsoft/winmine" c:/data/regbackups/wmbkup.reg

reg import

将包含导出的注册表子项、项和值的文件复制到本地计算机的注册表中。

语法
reg import FileName

参数
FileName
指定将复制到本地计算机注册表中的文件的名称和路径。必须预先使用 reg export 命令创建该文件。
/?
在命令提示符显示帮助。
注释
下表列出了 reg import 操作的返回值。 值 说明
0 成功
1 失败

范例
下面的范例说明了如何使用 reg import 命令:

reg import hkcu/software/microsoft/winmine" c:/data/regbackups/wmbkup.reg

reg load

将保存的子项和项写回到注册表的不同子项中。其目的是保存到一个临时文件中,而该文件可用于注册表项的疑难解答或编辑注册表项。

语法
reg load KeyName FileName

参数
KeyName
指定子项的完全路径。对于远程计算机,请在
//ComputerName/PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。
FileName
指定要加载的文件的名称和路径。必须使用带 .hiv 扩展名的 reg save 操作创建该文件。
/?
在命令提示符显示帮助。
注释
下表列出了 reg load 操作的返回值。 值 说明
0 成功
1 失败

范例
下面的范例说明了如何使用 reg load 命令:

reg load "hkcu/software/microsoft/winminebk2" wmbkup.hiv

reg query

返回注册表的子项下的项和下一层子项的列表。

语法
reg query KeyName [{/v EntryName|/ve}] [/s]

参数
KeyName
指定子项的完全路径。对于远程计算机,请在
//ComputerName/PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录树。
/v EntryName
返回特定的项及其值。该参数只返回直接位于指定子项的下一层中的项。将会找不到当前子项下的子项中的项。如果省略 EntryName,则将返回子项下的所有项。
/ve
指定仅返回为空值的项。
/s
将返回各个层中的所有子项和项。如果不使用该参数,将只返回下一层的子项和项。
/?
在命令提示符显示帮助。
注释
下表列出了 reg query 操作的返回值。 值 说明
0 成功
1 失败

范例
下面的范例说明了如何使用 reg query 命令:

reg query "hklm/system/currentcontrolset/control/session manager" /v maxstacktracedepth

reg query "hkcu/software/microsoft/winmine" /s

reg restore

将保存的子项和项写回到注册表。

语法
reg restore KeyName FileName

参数
KeyName
指定子项的完全路径。Restore 操作仅在本地计算机上工作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。
FileName
指定将写回到注册表中的文件的名称和路径。必须使用带 .hiv 扩展名的 reg save 操作预先创建该文件。
/?
在命令提示符显示帮助。
注释
该操作用于覆盖已编辑的注册表项。编辑注册表项之前,请使用 reg save 操作保存父亲子项。如果编辑失败,则可以使用本操作恢复子项。
下表列出了 reg restore 操作的返回值。 值 说明
0 成功
1 失败

范例
下面的范例说明了如何使用 reg restore 命令:

reg restore "hkcu/software/microsoft/winmine" wmbkup.hiv

reg save

将指定的子项、项和注册表值的副本保存到指定文件中。

语法
reg save KeyName FileName

参数
KeyName
指定子项的完全路径。对于远程计算机,请在
//ComputerName/PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。
FileName
指定所创建的文件的名称和路径。如果未指定路径,则使用当前路径。
/?
在命令提示符显示帮助。
注释
下表列出了 reg save 操作的返回值。 值 说明
0 成功
1 失败

范例
下面的范例说明了如何使用 reg save 命令:

reg save "hkcu/software/microsoft/winmine" wmbkup.hiv

reg unload

使用 reg load 操作删除已加载的部分注册表。

语法
reg unload KeyName

参数
KeyName
指定子项的完全路径。对于远程计算机,请在
//ComputerName/PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。
/?
在命令提示符显示帮助。
注释
下表列出了 reg unload 操作的返回值。 值 说明
0 成功
1 失败

范例
下面的范例说明了如何使用 reg unload 命令:

reg unload "hkcu/software/microsoft/winminebk2"

小心

编辑注册表不当可能会严重损坏您的系统。在更改注册表之前,应备份计算机上任何有价值的数据。
小心

只有在别无选择的情况下,才直接编辑注册表。注册表编辑器会忽略标准的安全措施,从而使得这些设置会降低性能、破坏系统,甚至要求用户重新安装 Windows。可以利用“控制面板”或“Microsoft 管理控制台 (MMC)”中的程序安全更改多数注册表设置。如果必须直接编辑注册表,则请首先将其备份。详细信息,请参阅“注册表编辑器帮助”。
注释
使用 Reg 直接编辑本地或远程计算机的注册表。这些更改有可能造成计算机无法操作并需要重新安装操作系统。所以不要直接编辑注册表,而应尽可能利用“控制面板”或“Microsoft 管理控制台 (MMC)”更改注册表。
有些操作可以查看或配置本地或远程计算机的注册表项,而另外一些则只允许配置本地计算机的注册表设置。同时,远程访问注册表也可能会限制用于某操作的参数。请检查每个操作的语法以便验证该操作可以用于远程计算机,以及验证可用于那种情况下的参数。

 

让Windows注册表修改快速生效

当我们修改了注册表,许多情况下只按下F5键刷新注册表还不足以使修改生效,而需要重新启动计算机。其实我们不必每次都重启机器,只需运行Windows的外壳程序Explorer即可(在Windows 9x/Me和Windows 2000/XP中的操作有所不同)。

在Windows 9x/Me中


按下“Ctrl+Alt+Delete”组合键,在弹出的窗口中选择“Explorer”,并点击“结束任务”按钮,这时屏幕会出现“关机”菜单,不要做任何操作,在再次弹出的窗口中点击“结束任务”按钮,即可让Windows在不重新启动的情况下快速刷新注册表。

在Windows 2000/XP中

按下“Ctrl+Alt+Delete”组合键,打开“任务管理器”,单击“进程”标签,找到并单击其中的“Explorer.exe”,点击右下方的“结束进程”按钮,在打开的警告对话框中单击“是”按钮。然后再单击“应用程序”标签,单击下方的“新任务”按钮,在打开的“创建新任务”对话框中输入“Explorer.exe”,再按下“确定”按钮即可。



 

 

本文地址:http://www.45fan.com/dnjc/69148.html
Tags: 修改 cmd 注册表
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部