更新注册表值的最简单方法?

Ann*_*Fay 5 windows windows-registry command-line regedit

在使用 Linux 时,当我在网上搜索以修复烦人的默认设置时,我已经习惯了单行程序。我知道这些衬垫可能非常危险,所以我总是确保在运行它们之前我知道它们在做什么。

同时,我讨厌必须更新 Windows 注册表项,因为我需要打开 regedit 并导航The Tree

有没有一种简单的方法来编辑特定的注册表值?

就像是:

regupdate path type newvalue
Run Code Online (Sandbox Code Playgroud)

Dav*_*all 5

Reg 命令执行您的要求。


Has*_*ziz 1

截至撰写本文时,大卫·马歇尔接受的答案回答了这个问题,但没有提供链接本身之外的任何细节。为了编写一个既易于阅读又不受潜在链接损坏影响的答案,我决定编写自己的问题答案。


如何使用命令行更新 Windows 注册表?

reg命令早在 Windows Server 2000 就已提供,就是用于此目的,并且语法使用起来相当简单。

添加密钥

在命令行窗口中运行以下命令:

reg add HKLM\Software\Classes\MyKey
Run Code Online (Sandbox Code Playgroud)

...其中HKLM\Software\Classes\MyKey是您要创建的注册表项。

要添加注册表值和数据以及密钥,需要参数。参数/v指定要添加的值的名称/t,参数指定值类型/d参数指定值中要包含的数据。

要添加具有名为包含数据的值 HKLM\Software\Classes\MyKey的键:DWORDLegacyDisable000

reg add HKLM\Software\Classes\MyKey /v LegacyDisable /t reg_dword /d 000
Run Code Online (Sandbox Code Playgroud)

删除密钥

reg delete HKLM\Software\Classes\MyKey
Run Code Online (Sandbox Code Playgroud)

参数包括/v,用于删除键中的特定值而不是键本身;/ve,仅当键不包含任何值时才删除它;和/f,它会覆盖命令等待用户确认的默认行为并强制删除。

要删除键中的值:

reg delete HKLM\Software\Classes\MyKey /v ValueName
Run Code Online (Sandbox Code Playgroud)

比较两个键

reg命令compare还允许您比较两个注册表项,默认列出两者之间的差异:

reg compare HKCR\.doc HKCR\.docx
Run Code Online (Sandbox Code Playgroud)

要更改列出差异的默认行为,并列出两个不同键之间的差异和相似之处,请使用 参数/oa


  • 添加或修改包含空格的注册表项时,请确保将该注册表项用引号引起来,以避免出现错误的语法错误。

  • 当引用关键路径中的任何注册表配置单元 - HKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_USERS-时HKEY_CURRENT_CONFIG,该reg命令允许分别使用其缩写版本 - HKLMHKCRHKCUHKU和- 来引用它们HKCC- 如上面的示例所示。

  • 当命令即将覆盖当前存在的值时,CMD 默认会提示确认。要绕过此确认,请使用/f参数强制覆盖。