标题: [注册表类] 批处理如何判断path系统环境变量是否存在指定字符串/变量? [打印本页]
作者: ddymzc 时间: 2012-11-27 13:59 标题: 批处理如何判断path系统环境变量是否存在指定字符串/变量?
本帖最后由 pcl_test 于 2016-10-15 12:05 编辑
首先感谢一下坛子里的大侠们
在这里学了不少需要用的知识
但最近想做一个批处理在安装mysql的时候添加系统变量MYSQL_HOME=C:\MySQL\bin
path的值是C:\windows;C:\windows\system32;%MYSQL_HOME%
path里的MYSQL_HOME是以变量名形式存在的,因为如果重新安装MYSQL到D盘,只需更改MYSQL_HOME的值就可以了
所以我在我的批处理中需要判断path里面是否有"%MYSQL_HOME%"这个字符串
我用- reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path|findstr "XXXXXXXXX"&&goto case1||goto case2
复制代码
XXXXXXXX部分我用%%MYSQL_HOME%%,%MYSQL_HOME%,MYSQL
结果无论path中是否存在%MYSQL_HOME%都返回到case2
而且我单独在cmd里regquery path的时候会提示错误:有更多数据可用
所以向问一下是不是我写错了
还是有什么其他的方法可以实现我需要的功能呢?
btw我写入注册表用的是- wmic ENVIRONMENT where "name='path' and username='<SYSTEM>'" set VariableValue='%path%;%%MYSQL_HOME%%'
- wmic ENVIRONMENT create name="MYSQL_HOME",username="<SYSTEM>",VariableValue="%~d0\MySQL\bin"
复制代码
作者: BAT-VBS 时间: 2012-11-29 11:43
- @echo off
- reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path | findstr "%%SystemRoot%%" && goto :case1 || goto :case2
- pause
- goto :eof
-
- :case1
- echo case1
- goto :eof
-
- :case2
- echo case2
- goto :eof
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |