批处理reg query里findstr 如何按照变量名称查找(如查找path里有没有"%JAVA_HOME%")

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理reg query里findstr 如何按照变量名称查找(如查找path里有没有"%JAVA_HOME%")相关的知识,希望对你有一定的参考价值。

2003 r2 enterprise
我在环境变量里设置mysql_HOME值是C:\MySQL
path里设置加的值是%MYSQL_HOME%\bin
(以上均已生效)然后批处理
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path|findstr "XXXXXXXXX"&&echo yeah||echo nono
XXXXXXXXX这里我用过MYSQL,%MYSQL_HOME%,%%MYSQL_HOME%%
查询返回的都是nono
提示错误:有更多数据可用
有解决方法吗?

参考技术A 你添加的环境变量可能是用户变量,用户变量和系统变量的注册表位置不同。
用户变量的注册表位置是 HKEY_CURRENT_USER\Environment
参考技术B 先不要加findstr看一下你的path中出来的是什么,然后再加上findstr /i,注意这个/i参数。追问

貌似也是错误:有更多数据可用

难道path里不能用变量名?
我注册表里的path是C:\;C:\windows;C:\windows\system32;\C:\windows\system32\wbem;\%MYSQL_HOME%\bin

追答

Windows自己在默认的path环境变量中都没有将windows目录替换为%windir%,这是其一。另外,环境变量的初始化是有先后顺序的,你自己设置的环境变量可能比path变量初始化的晚,这会不会有问题,你需要自己试验一下。

其实很简单,你在path环境变量中使用你自己设置的变量,然后随便打开一个cmd窗口,执行你环境变量指向目录里的可执行程序,只要能够找到,就说明这样设没有问题。

本回答被提问者和网友采纳

以上是关于批处理reg query里findstr 如何按照变量名称查找(如查找path里有没有"%JAVA_HOME%")的主要内容,如果未能解决你的问题,请参考以下文章

如何用批处理语句获取reg命令的返回值?

如何使用“findstr”匹配 IP 地址?或Windows中的任何其他批处理方法

如何将多个 findstr 结果分配给单独的变量

通过Powershell去除Windows10开机启动项

text REG QUERY #memo

在 findstr 搜索字符串中转义引号