使用Windows命令行reg控制注册表键值

引言

熟悉Windows操作系统的朋友可能都知道,Windows操作系统下的注册表相当于系统的数据库 ,部分软件将自己的配置信息都放在注册表里面,而注册表的破坏可以直接导致系统的崩溃。

而熟悉注册表的朋友对"注册表编辑器(regedit.exe)"一点也不陌生,它提供了一个图形化管理注册表的操作界面,本文要介绍的是另一种管理注册表的方法"控制台注册表编辑器(reg.exe)",它可以使用纯命令行的模式对注册表进行添加、删除、查看等操作;适用于在批处理中对注册表进行操作。

文章目录

0×1.控制台注册表编辑器在系统中的位置

如果我们的系统装在"C盘",那么控制台注册表编辑器reg.exe就在"C:\Windows\System32\reg.exe"(一些精简版的系统将这些程序都删除了,这样的情况你可以从其他系统中拷贝一个放置这个目录下)。

要调用"控制台注册表编辑器"只需要打开一个CMD命令行,输入"reg /?"就能看到帮助文件了,如下图所示(注意,Win7以后的系统中必须用管理员身份运行CMD才能对注册表的一些项进行操作,否则会因为权限不足而报错)

0×2.注册表类型结构

首先可以使用管理员权限打开cmd,在其中输入"regedit"回车,就能打开图形界面的注册表编辑器,下面用一张图说明注册表中的三个关键术语:"键"、"值"、"值类型";

实际上图形界面的注册表编辑器已经可以完成所有注册表编辑操作,但有时并没有图形界面,比如只有一个shell,这时想修改注册表的值,就可以用到命令行的注册表编辑器了。

0×3.reg常用命令详解

本节将实例演示如何对注册表进行添加、删除、查看、备份、还原操作,对于其他不常用的功能大家可以自己去摸索。

实例一:使用CMD在根键"HKEY_CURRENT_USER"下创建一个子键"qingsword",在这个子键中,添加一个值名称为"hello",类型为"REG_ZS",数据为"welcome to my website";

1 C:\>reg add hkcu\qingsword /v hello /t REG_SZ /d "welcome to my website"
2 操作成功完成。

在上面的命令中,"reg add" 是添加的意思,HKCU是根键"HKEY_CURRENT_USER"的缩写,另外几个根键的缩写分别为"HKCR"、"HKLM"、"HKU"、"HKCC",取根键的第一个单词的前两个字母和后面两个单词的前一个字母。

hkcu\qingsword就是在根键"HKEY_CURRENT_USER"下添加一个叫做qingsword的子键,如果这个子键存在,则不作任何操作。

/v 后面跟需要创建的值的名称。/t 后面是值的类型,/d 后面是这个值的数据。

命令成功后,在图形化注册表编辑器中可以查看到改动,显示结果如下图所示,如果没有出现变化请按"F5"刷新:

上图中,值hello上面还有一个默认值,如何更改这个默认值的类型和数据呢?请看下面的命令,需要将/v参数更改成/ve,意思是添加名称是空的默认值(ve=value empty),并将其类型(type)改变成DWORD,数据改成1:

1 C:\>reg add hkcu\qingsword /ve /t REG_DWORD /d 1
2 操作成功完成。

更改完成后,大家可以刷新看看默认值是不是更改成了我们设置的样子。

实例二:查看某个注册表项下面的值

01 #查看刚才创建的整个键下面的所有值的数据
02 C:\>reg query hkcu\qingsword
03  
04 HKEY_CURRENT_USER\qingsword
05     (默认)    REG_DWORD    0x1
06     hello    REG_SZ    welcome to my website
07  
08 #如果一个键下面的数据过多,可以使用下面的命令单独查看hello值的数据
09 C:\>reg query hkcu\qingsword /v hello
10  
11 HKEY_CURRENT_USER\qingsword
12     hello    REG_SZ    welcome to my website
13  
14 #单独查看默认值的数据
15 C:\>reg query hkcu\qingsword /ve
16  
17 HKEY_CURRENT_USER\qingsword
18     (默认)    REG_DWORD    0x1

实例三:导出和导入注册表

01 #导出hkcu\qingsword这个键到C盘下命名为qingsword.reg
02 C:\>reg export hkcu\qingsword c:\qingsword.reg
03  
04 #删除hkcu\qingsword键,稍后用导出的注册表文件恢复
05 C:\>reg delete hkcu\qingsword /f
06  
07 #这时候查看这个键会发生错误,因为上面删除了
08 C:\>reg query hkcu\qingsword
09 错误: 系统找不到指定的注册表项或值。
10  
11 #将刚才备份的文件导入注册表(会覆盖现有数据)
12 C:\>reg import c:\qingsword.reg
13 操作成功完成。
14  
15 #再次查询,看到原来的数据了,说明导入成功
16 C:\>reg query hkcu\qingsword
17  
18 HKEY_CURRENT_USER\qingsword
19     (默认)    REG_DWORD    0x1
20     hello    REG_SZ    welcome to my website
21  
22 #这个方法可以用来备份注册表的五个根键到指定的目录,以便在注册表被破坏时恢复,比如,备份hkcr这个根键到c盘中,其他的以此类推(图形化界面注册表编辑器可以一次性备份整个注册表)
23 C:\>reg export hkcr c:\hkcr.reg

实例四:删除hkcu\qingsword下刚才创建的"hello"值

1 #删除"hkcu\qingsword"键下的"hello"值,/f参数表强制删除且不询问,如果不添加则会询问是否删除
2 C:\>reg delete hkcu\qingsword /v hello /f
3 操作成功完成。

实例五:删除hkcu\qingsword下刚才修改的"默认"值

1 #操作完成后,默认值恢复了默认的样子
2 C:\>reg delete hkcu\qingsword /ve /f
3 操作成功完成。

通过这篇文章,相信大家对控制台注册表编辑器有了初步的了解,更多的操作可以使用"reg /?"去查看帮助文件;需要注意的是,有些根键下是不能直接创建子键的比如"HKEY_LOCAL_MACHINE"下就算是管理员也不能创建子键,但是可以在更下一级子键中创建比如"HKLM\software\";当需要操作的键中存在空格,需要用双引号将整个路径引起来。

*转载请注明来自:晴刃(QingSword.COM)

使用Windows命令行reg控制注册表键值的更多相关文章

  1. 使用PowerShell读、写、删除注册表键值

    访问注册表键值 在PowerShell中,用户可以通过类似于HKCU:(作为HKEY_CURRENT_USER)和HKLM:(代表HKEY_LOCAL_MATCHINE)的虚拟驱动器访问注册表键值. ...

  2. 通过程序修改注册表键值来达到修改IE配置参数的目的

    通过程序修改注册表键值来达到修改IE配置参数的目的 使用IE访问应用程序或网页时经常需要设置一些选项(工具-Internet 选项),比如为了避免缓存网页,把工具-Internet选项-常规选项卡-I ...

  3. 注册表键值明明存在OpenSubKey始终返回null,解决方案

    先上代码及实例 RegistryKey rsg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Macromedia\FlashPaper Pri ...

  4. windows 命令行 cmd 控制exe程序输入输出并比较

    参考 https://www.cnblogs.com/zccz14/p/4588634.html 例子: 对exe输入输出 使用fc比较不同

  5. Ubuntu - Dconf 注册表键值修改参考表

    gsettings reset org.gnome.desktop.wm.preferences theme默认gnomegsettings set org.gnome.desktop.interfa ...

  6. Windows命令行command的Shell命令详细解析和语法

    CMD命令大全及详细解释和语法 Microsoft Windows XP [版本 5.1.2600] 有关某个命令的详细信息,请键入 HELP 命令名 ASSOC    显示或修改文件扩展名关联. A ...

  7. 探索Windows命令行系列(6):活用批处理解决实际问题

    1.批量修改文件名 2.批量重启服务 3.全盘搜索指定文件 3.1.全盘搜索名称为 mm.jpg 的文件,获取其全路径 3.2.查找系统中所有名称以 .docx 结尾的文件 4.调用可执行程序 4.1 ...

  8. 探索Windows命令行系列(3):命令行脚本基础

    1.实用功能 1.1.为脚本添加注释 1.2.控制命令的回显 1.3.使用数学表达式 1.4.向脚本传递参数 2.使用变量 2.1.变量的命名及定义 2.2.调用变量 2.3.变量的作用域 3.结构语 ...

  9. 探索Windows命令行系列(5):几个实用的命令例解

    1.关机命令(shutdown) 2.管理 Windows 服务(sc) 3.管理任务进程(tasklist.taskkill) 4.显示 TCP/IP 配置值(ipconfig) 5.网络诊断工具( ...

随机推荐

  1. DNS解析问题

    DNS解析问题,在/etc/resolv.conf文件中加如下一行: nameserver 8.8.8.8 即使用谷歌的域名服务器 如下问题都是DNS解析问题: apt-get update 异常 T ...

  2. 修改config中的assemblyBinding

    修改config中的assemblyBinding 未测试这段代码 private void SetRuntimeBinding(string path, string value) { XmlDoc ...

  3. AWS 基础设施即代码(五)

    基础设施即代码 概述 手动配置的挑战:可能因为人为错误导致缺乏可靠性,环境无法完全再现,同时需要额外文档 基础设施即代码,是软件开发中用于创建可重用.可维护.可扩展及可测试基础设施的技术.实践和工具, ...

  4. ArcObjects中IMapAlgebraOp的使用体会

    本文提供使用IMapAlgebraOp接口实现大部分栅格计算的简单方法. 1.首先,ArcObjects提供了很多关于栅格计算的方法,有条件运算.逻辑运算及数学表达式,如下:              ...

  5. Mongodb索引实战

    最近碰到这样的一个需求,一张酒店政策优惠表,我们要根据用户入住和离开的时间,计算一家酒店的最低价政策前10位,数据库表字段如下: 'hid':88, 酒店id 'date':20150530, 入住日 ...

  6. LeetCode 279. 完全平方数(Perfect Squares) 7

    279. 完全平方数 279. Perfect Squares 题目描述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数 ...

  7. [转帖]微软 SQ1 参数一览:8 核 Kryo 495,Adreno 685 GPU

    微软 SQ1 参数一览:8 核 Kryo 495,Adreno 685 GPU http://www.myzaker.com/article/5d989ef68e9f0977765e5506/ 微软发 ...

  8. Python--递归函数实现:多维嵌套字典数据无限遍历

    原创:多层嵌套字典无限遍历,实现当value值以特殊字符$开头,并且等于某项值时,用随机函数替换该参数 """处理前的字典{'patient': {'avatarPic' ...

  9. WUSTOJ 1325: Distance(Java)坐标计算

    题目链接:1325: Distance Description There is a battle field. It is a square with the side length 100 mil ...

  10. MySQL新项目如何确保上线安全

    大纲 DBA最应该做的事情 新项目开发环境应该注意什么 功能测试和压力测试MySQL DBA关注点 线上环境关注点 业务在大压力情况下,MySQL如何能活下来 DBA最应该做的事情 备份 建议每天全备 ...