[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 批处理如何判断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%"这个字符串
我用
  1. 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我写入注册表用的是
  1. wmic ENVIRONMENT where "name='path' and username='<SYSTEM>'" set VariableValue='%path%;%%MYSQL_HOME%%'
  2. wmic ENVIRONMENT create name="MYSQL_HOME",username="<SYSTEM>",VariableValue="%~d0\MySQL\bin"
复制代码

  1. @echo off
  2. reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path | findstr "%%SystemRoot%%" && goto :case1 || goto :case2
  3. pause
  4. goto :eof
  5. :case1
  6. echo case1
  7. goto :eof
  8. :case2
  9. echo case2
  10. goto :eof
复制代码

TOP

返回列表