set /p boy=输入该程序的完全路径:
reg add \/v %girl% /d %boy% /f 例如: @echo off
reg add \腾讯软件\\qq\\qq.exe\
参数详解:
REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
KeyName [\\\\Machine\\]FullKey
Machine 远程机器名 - 忽略默认到当前机器。远程机器上 只有 HKLM 和 HKU。 FullKey ROOTKEY\\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey 所选 ROOTKEY 下注册表项的完整名。
/v 所选项之下要添加的值名。
/ve 为注册表项添加空白值名(默认)。
/t RegKey 数据类型
[ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ |
REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE ] 如果忽略,则采用 REG_SZ。
/s 指定一个在 REG_MULTI_SZ 数据字符串中用作分隔符的字符 如果忽略,则将 \用作分隔符。
/d 要分配给添加的注册表 ValueName 的数据。
/f 不用提示就强行覆盖现有注册表项。
例如:
REG ADD \\\\ABC\\HKLM\\Software\\MyCo
添加远程机器 ABC 上的一个注册表项 HKLM\\Software\\MyCo
REG ADD HKLM\\Software\\MyCo /v Data /t REG_BINARY /d fe340ead 添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead)
REG ADD HKLM\\Software\\MyCo /v MRU /t REG_MULTI_SZ /d fax\\0mail 添加一个值(名称: MRU,类型: REG_MUTLI_SZ,数据: fax\\0mail\\0\\0)
REG ADD HKLM\\Software\\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^% 添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%)
注意: 在扩充字符串中使用插入符号 ( ^ )
这里出现了很多的新名词,有必要讲解一下这些新名词的含义,键名(项),值名(键名),值(键值); 例如:
reg add \qq /d \腾讯软件\\qq\\qq.exe\其中,
HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run就是“项”; qq就是“键名”;可以自己设置。
F:\\腾讯软件\\qq\\qq.exe就是“键值”;这里是我电脑上qq.exe的完全路径,根据自己电脑本身的qq.exe路径填写。
REG ADD HKLM\\Software\\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%) 注意: 在扩充字符串中使用插入符号 ( ^ )
上面这段引用的意思就是,在“键值”有特殊符号时,需要用^加以转义,要添加键值“%systemroot%”,就必须写成“^%systemroot^%”。
再以一个例子说明:
@echo off
title 信长之野望12pk改变窗口模式工具 by helloworld set /p a=1.全屏2.窗口(输入1或者2):
if %a%==1 reg add \/t REG_DWORD /d 1 /f && echo 信长之野望12pk将会以全屏启动
if %a%==2 reg add \/t REG_DWORD /d 0 /f && echo 信长之野望12pk将会以窗口启动 pause>nul
语法:reg add 项 /v 键名 /t 键值类型 /d 键值 /f(强制执行)
结合前面的两个代码,其实不难看出,在reg add命令中,最常用的就是 /v /d /f 三个参数,/value后跟键名,/data后跟键值,/force 表示强制执行。省略/t参数时,默认的键值类型为 REG_SZ
这里以reg add为基础,全面的解析reg命令:
注册表就是上面那么4个关键的东西:项、键名、键值类型、键值;4个以外,再无其它。因此,reg命令操作对象也就不过这4个东西,不管是add也好、delete也好、query也好,统统都是如此。
REG QUERY /? query(查询),用来查询具体的项、键名、键值。 例子:
::获取ie缓存文件夹位置 set zcb= set hc= set weizhi=
set \Folders\
for /f \\
set \
for /f \echo ie缓存文件夹位置:%hc%
ie缓存文件夹位置,在windowsxp和windows7中的位置是有差别的,但是在注册表中存储“ie缓存文件夹位置”的地址却是一样的,某种意义上来说,注册表可以解决批处理的兼容性,换句话说, 就是利用reg命令可以解决批处理兼容性的问题!
REG ADD /? add(添加),用来添加具体的项、键名、键值。
REG DELETE /? delete(删除),用来删除具体的项、键名、键值。
REG COPY /? copy(复制),用来复制具体的项、键名、键值到另一个具体的项、键名、键值。
REG SAVE /? save(保存),用来保存具体的项、键名、键值,到以hiv为扩展名的文件中。(可以想象,必有一个还原hiv文件的reg子命令) 例子:
REG SAVE HKLM\\Software\\MyCo\\MyApp c:\\AppBkUp.hiv ::将配置单元 MyApp 保存到c盘中的文件 AppBkUp.hiv
REG RESTORE /? restore(还原),覆盖方式还原以hiv为扩展名的文件,到具体的项、键名、键值中。(跟reg save相对应) 例子:
REG SAVE HKLM\\Software\\MyCo\\MyApp c:\\AppBkUp.hiv 项一直紧跟在子命令后面,不管什么reg子命令。
REG LOAD /? load(加载),追加方式还原以hiv为扩展名的文件,到具体的项、键名、键值中。(跟reg save相对应) 例子:
REG LOAD HKLM\\TempHive TempHive.hiv
将文件 TempHive.hiv 加载到注册表项 HKLM\\TempHive
“restore等同于>,load等同于>>”——类似这样。
REG UNLOAD /? unload(卸载),将加载子命令load的操作删除。 例子:
REG UNLOAD HKLM\\TempHive
卸载 HKLM 中的配置单元 TempHive
REG COMPARE /? compare(比较),用来比较具体的项、键名、键值和另一个具体的项、键名、键值。 例子:
REG COMPARE HKLM\\Software\\MyCo\\MyApp HKLM\\Software\\MyCo\\SaveMyApp 将注册表项 MyApp 下的所有值跟 SaveMyApp 比较
REG EXPORT /? export(输出),用来保存具体的项、键名、键值,到以reg为扩展名的文件中。(常说的“备份注册表”就是这个了) 例子:
REG EXPORT HKLM\\Software\\MyCo\\MyApp AppBkUp.reg
将注册表项 MyApp 的所有子项和值导出到文件 AppBkUp.reg
REG IMPORT /? import(输入),有备份就有还原,export的逆操作。(不需要加项,会自动添加到具体位置) REG IMPORT AppBkUp.reg
从文件 AppBkUp.reg 导入注册表项
REG FLAGS /? flags(标识),密钥?
REG FLAGS HKLM\\Software\\MyCo\\MyApp QUERY 显示密钥 MyApp 的当前标志。
扩展阅读:
1.注册表主要的根键。
注册表有5个根键,分别是(括号中表示该根键所掌管的数据——有遗漏,无错误):
HKEY_CLASSES_ROOT(已在计算机上注册的所有com服务器和与应用程序相关联的所有文件扩展名)
HKEY_CURRENT_USER(当前用户配置信息) HKEY_LOCAL_MACHINE(该计算机对于任意用户的配置信息,掌管数据最多) HKEY_USERS(系统默认用户配置信息)
HKEY_CURRENT_CONFIG(硬件配置文件信息)
其中,HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG都是HKEY_LOCAL_MACHINE的子项,分别对应于
HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes、
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet
2.键值的数据类型。
[ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ |
REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE ]
字符串值
在注册表中,字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成,最大长度不能超过255个字符。通过键值名、键值就可以组成一种键值项数据,这就相当于Win.ini、Ssyt-em.ini文件中小节下的设置行。其实,使用注册表编辑器将这些键值项数据导出后,其形式与INI文件中的设置行完全相同。
二进制值
在注册表中,二进制值是没有长度限制的,可以是任意个字节长。在注册表编辑器中,二进制以十六进制的方式显示出来。
DWORD值
DWORD值是一个32位(4个字节,即双字)长度的数值。在注册表编辑器中,您将发现系统会以十六进制的方式显示DWORD值,在编辑DWORD数值时,可以选择用十进制还是16进制的方式进行输入。