批处理检测注册表项目是否存在并运行指定命令

批处理检测注册表项目是否存在并运行指定命令

要实现上面说的功能就必须要用到批处理操作注册表命令「REG QUERY」,这个命令的大体功能就是可以查询相关注册表项目。

先来看下「REG QUERY」命令介绍:

REG QUERY KeyName [/v ValueName | /ve] [/s]

KeyName [\Machine\]FullKey
Machine 远程机器名 – 忽略当前机器的默认值,远程机器上只有 HKLM 和 HKU。FullKey 格式为 ROOTKEY\SubKey。ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]SubKey 所选 ROOTKEY 下的注册表项的全名。
/v 参数的意思是查询特定注册表项,ValueName 所选项下的要查询的值的名称,省略时,该项下的所有值都会得到查询。
/ve 查询默认值或空白值名称<no name>
/s 查询所有子项和值

例如:
REG QUERY HKLM\Software\Microsoft\ResKit /v Version 显示注册表值 Version 的值
REG QUERY HKLM\Software\Microsoft\ResKit\rt\Setup /s 显示注册表项 Setup 下的所有子项和值

现在知道「REG QUERY」命令可以读取注册变项目并返回相关结果,就可以通过批处理根据返回值来写注册表了。

先看下下面完整的一个实例代码,是刚发布「ICL-Icon Extractor 5.12 绿色特别版│好用图标批量搜索提取工具」软件的绿化源码:

  1.  @echo off
  2.  reg query HKCU\Software\IconEmpire\IconExtractor\Registered /v Key>nul 2>nul&&goto A||goto B
  3.  :A
  4.  start iconextract.exe
  5.  exit
  6.  :B
  7.  start iconextract.exe
  8.  reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /v "Key" /d "9m888x9998888p" /f
  9.  reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /v "UserName" /d "V5PC" /f
  10.  reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /v "Email" /d "V5PC@PC.COM" /f
  11.  start iconextract.exe
  12.  exit
  13.  pause>nul

好接下来简单分析下这个代码:

  1.  reg query HKCU\Software\IconEmpire\IconExtractor\Registered /v Key>nul 2>nul&&goto A||goto B

由于这个程序的注册表信息保存在「HKCU\Software\IconEmpire\IconExtractor\Registered」「Key」这个值项中,所以通过「reg query」命令来读取这个值项中有没有数据。

「/V」参数就是只读指定「Key」中的数据。

「2>nul」是不显示错误提示,如果是「1>nul」意思是不显示命令运行的正确提示,「>」是重定向符号,「nul」是空设备的意思。

「&&」顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令。

「||」 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令。

「goto A」和「goto B」是跳转指令,具体要跳到那里「A」还是「B」就要看返回值了并且是通过「||」控制走向。

  1.  :A
  2.  start iconextract.exe
  3.  exit

下面的指令就简单了,如果跳转到A就通过下面的「start」运行程序就行了,「exit」是退出。

  1.  :B
  2.  start iconextract.exe
  3.  reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /v "Key" /d "9m888x9998888p" /f
  4.  reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /v "UserName" /d "V5PC" /f
  5.  reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /v "Email" /d "V5PC@PC.COM" /f
  6.  start iconextract.exe
  7.  exit
  8.  pause>nul

如果跳转到B就通过「reg add」添加注册表项,后面同样也是通过「start」运行程序,「exit」代码退出,最后一句「pause」是暂停这句多余了,因为不等走到这句代码就已经退出了。

本文来自:http://www.gtxp2.com/zjpwk/370.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值