zoukankan      html  css  js  c++  java
  • 批处理实现添加java环境变量

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

       

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


    @echo off
    
    rem 本批处理文件目的为了增加Java开发的三个相关环境变量:JAVA_HOME、CLASS_PATH和Path
    
    rem 作者:朱金灿,如有问题请发邮件:clever101@163.com
    
    @set Path_=%javaPath%in;%javaPath%jrein
    
    @reg add "HKLMsystemcontrolset001controlsession managerenvironment" /v JAVA_HOME /t reg_sz /d "%javaPath%" /f 
    
    rem 查询Path环境变量的所有路径
    @set Path_=%javaPath%in
    for,/f,"tokens=1,2,* delims=	 ",%%a,in,('reg query "HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerEnvironment" /v Path'),do,(
            @set PathAll_=%%c 
        )
    
    rem 去除路径的最后的空格
    
    :intercept 
    if "%PathAll_:~-1%"==" " set "PathAll_=%PathAll_:~0,-1%"&goto intercept
    
    rem 判断java的相关路径是否在Path环境变量下,如果不在则添加进来
    echo %PathAll_%|find /i "%Path_%" && set IsNull=true|| set IsNull=false 
        if not %IsNull%==true ( 
           reg add "HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerEnvironment" /v Path /t REG_EXPAND_SZ /d "%PathAll_%;%Path_%" /f 
        ) 
        if not %IsNull%==false (echo "Java的bin路径已经在Path环境变量中")
    
    @reg add "HKLMsystemcontrolset001controlsession managerenvironment" /v CLASSPATH /t reg_expand_sz /d "%javaPath%libdt.jar;%javaPath%lib	ools.jar;." /f 
    
    rem 刷新注册表
    
    taskkill /f /im explorer.exe
    
    start explorer.exe
    
    RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
    
    pause 
    
    for,/f,"tokens=1,2,* delims=(Tab)(空格)",%%a,in,('reg query "HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerEnvironment" /v Path')

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

    image

    图2-1

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

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

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

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

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

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


    参考文献:


    1. 批处理 字符串去空格实现代码


    2.批处理常用命令及path路径添加


    3.批处理应用之设置JAVA环境变量

    
    
  • 相关阅读:
    python3+requests库框架设计03-请求重新封装
    python3+requests库框架设计02-封装日志类
    [patl2-001]紧急救援
    [patl1-046]整除光棍
    latex学习
    matlab基础功能实践
    dll注入及卸载实践
    编译原理大作业暂存
    12.24逆向工程上机作业整理
    [poj1703]Find them, Catch them(种类并查集)
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470134.html
Copyright © 2011-2022 走看看