Board logo

标题: [系统相关] 批处理自动设置系统变量问题 [打印本页]

作者: 7289823    时间: 2022-2-3 14:40     标题: 批处理自动设置系统变量问题

先上代码,我自己不是很懂bat,所以是从几个大神的bat里面拼接出来的
目前的问题是在安装java环境变量时,第二次安装没办法剔除掉第一次写入到PATH变量中的字符,会导致path变量中有重复的java内容
所以我应该改哪里,如何更改,同理安装maven也是有同样的问题。
::在环境变量path中,剔除掉变量java_home中的字符,回显剩下的字符串
call set xx=%Path%;%javaPath%\jre\bin;%javaPath%\bin
  1. @echo off
  2. title java环境变量配置
  3. color 0A
  4. echo.
  5. echo. ===================================================
  6. echo.
  7. echo   即将配置环境变量......
  8. echo.
  9. echo   确定(鼠标右击)以管理员方式打开
  10. echo.
  11. echo   配置Java,Maven环境
  12. echo.
  13. echo. ===================================================
  14. echo.
  15. echo  1 (配置Java环境变量)
  16. echo.
  17. echo  2 (配置Maven环境变量)
  18. echo.
  19. echo  3 (退出程序)
  20. echo.
  21. echo. ===================================================
  22. echo.
  23. SET /P ST= 请选择:
  24. echo.
  25. if /I "%ST%"=="1" goto javah
  26. if /I "%ST%"=="2" goto mavenh
  27. if /I "%ST%"=="3" goto exh
  28. echo  无效选择,按任意键退出!
  29. pause >nul
  30. exit
  31. :javah
  32. echo  JAVA_HOME
  33. echo %JAVA_HOME%
  34. if defined JAVA_HOME (echo 已经存在JAVA_HOME配置!继续设置输入1) else (goto setjavah)
  35. SET /P javainput= 请选择:
  36. if /I "%javainput%"=="1" goto setjavah
  37. echo 按任意键退出!
  38. pause >nul
  39. exit
  40. :mavenh
  41. if defined MAVEN_HOME (echo 已经存在MAVEN_HOME配置!继续设置输入2) else (goto setmavenh)
  42. SET /P maveninput= 请选择:
  43. if /I "%maveninput%"=="2" goto setmavenh
  44. echo 按任意键退出!
  45. pause >nul
  46. exit
  47. :setjavah
  48. set /p "input=请输入java的jdk路径(或回车默认路径为C:\Program Files\Java\jdk1.8.0_311):"
  49. if defined input (echo jdk路径已设置) else (set input=C:\Program Files\Java\jdk1.8.0_311)
  50. echo jdk路径为%input%
  51. set javaPath=%input%
  52. ::如果有的话,先删除JAVA_HOME
  53. wmic ENVIRONMENT where "name='JAVA_HOME'" delete
  54. ::如果有的话,先删除ClASS_PATH
  55. wmic ENVIRONMENT where "name='CLASS_PATH'" delete
  56. ::创建JAVA_HOME
  57. wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%javaPath%"
  58. ::创建CLASS_PATH
  59. wmic ENVIRONMENT create name="CLASS_PATH",username="<system>",VariableValue=".;%%javaPath%%\lib\tools.jar;%%javaPath%%\lib\dt.jar;"
  60. ::在环境变量path中,剔除掉变量java_home中的字符,回显剩下的字符串
  61. call set xx=%Path%;%javaPath%\jre\bin;%javaPath%\bin
  62. echo %xx%
  63. ::将返回显的字符重新赋值到path中
  64. wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%xx%"
  65. goto setmessage
  66. :setmavenh
  67. set /p "minput=请输入Maven所在路径(或回车默认路径为E:\apache-maven-3.8.4):"
  68. if defined minput (echo Maven路径已设置) else (set minput=E:\apache-maven-3.8.4)
  69. echo Maven路径为%minput%
  70. set mavenPath=%minput%
  71. ::如果有的话,先删除MAVEN_HOME
  72. wmic ENVIRONMENT where "name='MAVEN_HOME'" delete
  73. ::创建MAVEN_HOME
  74. wmic ENVIRONMENT create name="MAVEN_HOME",username="<system>",VariableValue="%mavenPath%"
  75. ::在环境变量path中,剔除掉变量MAVEN_HOME中的字符,回显剩下的字符串
  76. call set xx=%Path%;%mavenPath%\bin
  77. echo %xx%
  78. echo %mavenPath%
  79. ::将返回显的字符重新赋值到path中
  80. wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%xx%"
  81. goto setmessage
  82. :setexist
  83. echo.
  84. echo  已经存在配置,按任意键退出!
  85. goto exh
  86. :setmessage
  87. echo.
  88. echo  配置完成,请重启,按任意键退出!
  89. goto exh
  90. :exh
  91. echo.
  92. echo. ===================================================
  93. echo.
  94. pause >nul
  95. exit
  96. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2