使用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. Python第一阶段02

    1.模块: import sys print(sys.path) # 打印环境变量 print(sys.argv) # 打印当前文件绝对路径 # print(sys.argv[]) import os ...

  2. 【opencv基础-VxWorks】话说图像格式转换-COLOR_YUV2BGR_YUY2

    前言 基于Vxworks的WindRiver获取摄像头图像进行处理,需要先进行转换,对于转换格式博主有点疑问.本文对此作出解释,若有错误,请交流指正. README.md The video came ...

  3. 斐波那契数列&&上台阶

    使用装饰器的场景 当我们想对多个函数增加一个相同的功能时,例如计数统计,缓存计算结果,记录日志等 # coding:utf-8 # [题目1] # 斐波那契数列 又称黄金分割数列,指的是这样的一个数列 ...

  4. CountDownLatch和CyclicBarrier使用上的区别

    一.CountDownLatchDemo package com.duchong.concurrent; import java.util.Map; import java.util.concurre ...

  5. C++ 宏和模板简介

    参考<21天学通C++>第14章节,对C++中的宏和模板进行了学习,总结起来其主要内容如下: (1) 预处理器简介 (2) 关键字#define与宏 (3) 模板简介 (4) 如何编写函数 ...

  6. LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)

    21. 合并两个有序链表 21. Merge Two Sorted Lists 题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. LeetCode ...

  7. java war包 远程debug出现的问题解决,学会查看日志

    开启远程debug之后,8005 关闭tomcat 又启动不了了.. netstat -lnp 未发现8005接口 eclipse 内远程链接到服务器,debug 下发现服务器线程启动也存在问题.很多 ...

  8. Linux基础-01-Linux基础命令

    1. Linux命令的格式 1) Linux命令的语法格式: 命令 [选项] [参数] 2) 命令格式中命令.选项.参数的具体含义 a) 命令:告诉Linux(UNIX)操作系统做(执行)什么. b) ...

  9. Redis--hash类型操作命令

    哈希类型hash redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象 哈希类型hash——基本命令 hset /hget /hms ...

  10. python基础 — CSV 数据处理

    什么是csv 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本) 编码: encode  ...