Board logo

标题: [注册表类] [已解决]批处理怎样判断注册表中的键值是否存在,并根据判断运行脚本或程序? [打印本页]

作者: 5209520    时间: 2023-5-19 10:58     标题: [已解决]批处理怎样判断注册表中的键值是否存在,并根据判断运行脚本或程序?

本帖最后由 5209520 于 2023-5-19 14:38 编辑
  1. @echo off
  2. reg query HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main /v Window Title>nul 2>nul&&goto A||goto B
  3. :A
  4. del /s /Q C:\WINDOWS\temp
  5. exit
  6. :B
  7. c:\ip.txt
  8. exit
复制代码
请教一下大神  上面的代码是 判断 注册表 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main  下 Window Title键值是否有内容 如果有 则运行B 如果没有运行A      Window Title键值内容为空也是执行B   请帮忙看看哪里出错  谢谢
作者: 77七    时间: 2023-5-19 11:36

本帖最后由 77七 于 2023-5-19 11:52 编辑

不懂注册表,试着学习下
单独运行
  1. reg query HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main /v Window Title
复制代码


提示
  1. 错误: 无效语法。
  2. 键入 "REG QUERY /?" 了解用法信息。
复制代码


查看用法
  1. /v       具体的注册表项值的查询。
  2.            如果省略,会查询该项的所有值。
  3.            只有与 /f 开关一起指定的情况下,此开关的参数才是可选的。它指定
  4.            只在值名称中搜索。
  5. /f       指定搜索的数据或模式。
  6.            如果字符串包含空格,请使用双引号。默认为 "*"。
复制代码


最后尝试,看看是不是需要的结果。好像用不到/f
  1. reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Window Title" >nul 2>nul && (echo 1) || (echo 2)
复制代码

作者: 5209520    时间: 2023-5-19 12:19

本帖最后由 5209520 于 2023-5-19 12:36 编辑

回复 2# 77七


   reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Window Title" >nul 2>nul && (echo 1) || (echo 2)     测试了一下   Window Title键值有没有内容 运行的结果都是  1     Window Title键值删除了  结果为2    好像没有判断到  Window Title 这个数值数据   

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Window Title"="IT"
作者: 77七    时间: 2023-5-19 12:54

回复 3# 5209520


  
  1. @echo off
  2. (for /f "skip=2 tokens=1-4" %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Window Title" 2^>nul') do (
  3. if "%%d" neq "" (
  4. echo 成功
  5. ) else (
  6. echo 失败1
  7. )
  8. )) || echo 失败2
  9. pause
复制代码
试一下这样行吗




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