Board logo

标题: [注册表类] 【已解决】批处理注册表获取键值传递给临时变量使用求问? [打印本页]

作者: hztccy    时间: 2021-10-2 01:04     标题: 【已解决】批处理注册表获取键值传递给临时变量使用求问?

本帖最后由 hztccy 于 2024-2-22 22:38 编辑

这两天想写一个软件静默安装
然后需要判断注册表的某个键值是否为我所需要的
  1. reg QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player ActiveX" /v DisplayVersion
复制代码
这样是显示了我所需要的注册表数值
但是我该怎么传递给变量零时使用呢?

根据百度上的资料。我试了for /f 但是其参数总是理解不了。总是调试失败

使用set /p 直接赋值,但是赋值的是真个注册表路径,返回值为0

使用IF 判断也不知道该怎么来写这个判断。

求大神帮个忙。写判断

我的需要是,读取上面注册表数值进行匹配,如果匹配成功则执行GOTO :A反之数值不匹配则执行GOTO :B
作者: Batcher    时间: 2021-10-2 10:53

回复 1# hztccy


读一遍这个for命令教程:
http://bbs.bathome.net/thread-31727-1-1.html

然后把你写的 for /f 代码发出来看看,我可以帮忙修改。
作者: hztccy    时间: 2021-10-2 18:30

本帖最后由 hztccy 于 2021-10-2 18:31 编辑

回复 2# Batcher
  1.    
  2. echo on
  3. for /f "tokens=2" %%i in (reg QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player ActiveX" /v DisplayVersion) do (if %%i==34.0.0.192 goto A esle goto B)
  4. :A
  5. echo 显示正确
  6. :B
  7. echo 显示正确
  8. pause
复制代码
帮我看看。这个是我根据百度得来修改的,主要是参数这几个tokens理解不了其中的意思。总是调试不出来
作者: Batcher    时间: 2021-10-2 20:42

回复 3# hztccy


    暂时忘掉百度,先看看2楼的教程。这个代码主要的错误不是tokens那几个参数
作者: qixiaobin0715    时间: 2021-10-2 20:45

if语句,两段goto循环都有问题。
作者: hztccy    时间: 2021-10-2 23:23

回复 4# Batcher


    谢了。已经在群友的协助下。搞清楚错误的地方。我的参数没用错。主要是最后的if 和 括号里的'没用对




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2