绿茶吧 绿色纯净 爱上下载,网站全新改版 定期更新各种软件和技术文章 敬请关注 点击 有问题请加联系QQ。请在Chrome、Firefox、IE11等现代浏览器浏览本站!

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

技术分享 admin

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

要实现上面说的功能就必须要用到批处理操作注册表命令「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 /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" /"Key" /"9m888x9998888p" /f
  9. reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /"UserName" /"V5PC" /f
  10. reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /"Email" /"V5PC@PC.COM" /f
  11. start iconextract.exe
  12. exit
  13. pause>nul

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


  1. reg query HKCU\Software\IconEmpire\IconExtractor\Registered /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" /"Key" /"9m888x9998888p" /f
  4. reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /"UserName" /"V5PC" /f
  5. reg add "HKEY_CURRENT_USER\Software\IconEmpire\IconExtractor\Registered" /"Email" /"V5PC@PC.COM" /f
  6. start iconextract.exe
  7. exit
  8. pause>nul

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

喜欢 (3) or 分享 (0)

您的回复是我们的动力!

  • 昵称 (必填)
  • 验证码 点击我更换图片