博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批处理实现添加java环境变量
阅读量:2429 次
发布时间:2019-05-10

本文共 1851 字,大约阅读时间需要 6 分钟。

作者:朱金灿

来源:

   

           从网上搜了一些资料,再修改测试,终于通过了win7系统的测试。代码如下:

@echo offrem 本批处理文件目的为了增加Java开发的三个相关环境变量:JAVA_HOME、CLASS_PATH和Pathrem 作者:朱金灿,如有问题请发邮件:@set Path_=%javaPath%\bin;%javaPath%\jre\bin@reg add "HKLM\system\controlset001\control\session manager\environment" /v JAVA_HOME /t reg_sz /d "%javaPath%" /f rem 查询Path环境变量的所有路径@set Path_=%javaPath%\binfor,/f,"tokens=1,2,* delims=	 ",%%a,in,('reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path'),do,(        @set PathAll_=%%c     )rem 去除路径的最后的空格:intercept if "%PathAll_:~-1%"==" " set "PathAll_=%PathAll_:~0,-1%"&goto interceptrem 判断java的相关路径是否在Path环境变量下,如果不在则添加进来echo %PathAll_%|find /i "%Path_%" && set IsNull=true|| set IsNull=false     if not %IsNull%==true (        reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "%PathAll_%;%Path_%" /f     )     if not %IsNull%==false (echo "Java的bin路径已经在Path环境变量中")@reg add "HKLM\system\controlset001\control\session manager\environment" /v CLASSPATH /t reg_expand_sz /d "%javaPath%\lib\dt.jar;%javaPath%\lib\tools.jar;." /f rem 刷新注册表taskkill /f /im explorer.exestart explorer.exeRunDll32.exe USER32.DLL,UpdatePerUserSystemParameterspause
for,/f,"tokens=1,2,* delims=(Tab)(空格)",%%a,in,('reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path')

    这一句的作用是遍历注册表HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment中的Path变量的所有文本,并以Tab+空格做分隔符,取出第1、2和剩余部分,分别存放在a、b、c变量中。如图2-1:

图2-1

    因此%%a,代表Path,%%b代表REG_SZ,%%c代表 C:\Windows\System32;D:\Program Files。

    必须注意 delims=(Tab)(空格)" ,这里必须是先一个tab后再加空格,不然一定会报错的。

    另外注意,因为上面的对Path的分割用的是(Tab)(空格),for语句写成如下:

for,/f,"tokens=1,2,3 delims=(Tab)(空格)",%%a,in(略)

这里%%c取得的值将是 “C:\Windows\System32;D:\Program”,原因是Program Files中出现了一个空格。

神说,这里因为delims默认的分隔符是空格和tab键,这个地方注意一下!

参考文献:

1.

2.

3.




转载地址:http://zyimb.baihongyu.com/

你可能感兴趣的文章
Redis应用实战---通过注解完成方法+IP的限流
查看>>
常见的限流场景、限流算法、限流实现分析
查看>>
追踪、分析Java网络编程底层系统调用
查看>>
基础算法面试题---异或运算
查看>>
Redis应用实战---商品购买相关性分析
查看>>
链表算法面试题---链表
查看>>
基础算法面试题---如何用栈实现队列
查看>>
基础算法面试题---如何用队列实现栈(1)
查看>>
基础算法面试题---如何用队列实现栈(2)
查看>>
基础算法面试题---如何数组实现栈和队列
查看>>
基础算法面试题---获取栈的最小值
查看>>
基础算法面试题---滑动窗口的最大值
查看>>
API接口安全性设计以及各参数的作用
查看>>
《Netty权威指南 第2版》学习笔记(1)---服务端与客户端开发入门
查看>>
《Netty权威指南 第2版》学习笔记(6)--- HTTP协议开发应用
查看>>
链表算法面试题---删除链表中的重复元素II
查看>>
基础算法面试题---合并有序链表
查看>>
链表算法面试题---从链表中删除给定的节点
查看>>
链表算法面试题---删除链表倒数第N个节点
查看>>
链表算法面试题---环形链表
查看>>