Board logo

标题: [系统相关] 使用批处理脚本检查环境中是否存在JAVA_HOME [打印本页]

作者: cidsxwf    时间: 2019-1-17 11:39     标题: 使用批处理脚本检查环境中是否存在JAVA_HOME

使用批处理脚本检查环境中是否存在JAVA_HOME,如果有就添加指定JAVA_HOME,如果没有就打印现有的JAVA_HOME
  1. @echo off
  2. IF "%JAVA_HOME%" == "" (
  3. set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
  4. set javahome=C:\Windows\Client\jdk
  5. setx "JAVA_HOME" "%javahome%" -M
  6. for /f "tokens=1,* delims=:" %%a in ('reg QUERY "%regpath%" /v "path"') do (
  7.     set "L=%%a"
  8.     set "P=%%b"
  9. )
  10. set "Y=%L:~-1%:%P%"
  11. setx path "%%JAVA_HOME%%\bin;%Y%" -m
  12. ) ELSE (
  13.     echo %JAVA_HOME%
  14. )
  15. pause
复制代码
但是环境变量里的JAVA_HOME为空,path也被覆盖了,请问如何改正
作者: 523066680    时间: 2019-1-17 11:50

回复 1# cidsxwf

win7 有个 setx 命令可能适合你的情况使用

setx
描述:
    在用户或系统环境创建或修改环境变量。能基于参数、注册表项或文件输
    入设置变量。
作者: Batcher    时间: 2019-1-17 12:33

  1. @echo off
  2. if "%JAVA_HOME%" == "" (
  3.     set javahome=C:\Windows\Client\jdk
  4.     call set "JAVA_HOME=%%javahome%%"
  5.     call setx "JAVA_HOME" "%%javahome%%" /m
  6.     setx "path" "%%JAVA_HOME%%\bin;%path%" /m
  7. ) else (
  8.     echo %JAVA_HOME%
  9. )
  10. pause
复制代码

作者: cidsxwf    时间: 2019-1-17 14:09

回复 3# Batcher
java_home还是为空
作者: Batcher    时间: 2019-1-17 15:32

回复 4# cidsxwf


    3楼代码已更新,你再试试。
作者: cidsxwf    时间: 2019-1-17 17:14

回复 5# Batcher

感谢大佬,java_home的值有了,但是path没有添加。
作者: Batcher    时间: 2019-1-17 17:33

回复 6# cidsxwf


    3楼又更新了一下,再执行看看还有报错吗?
作者: cidsxwf    时间: 2019-1-18 09:14

回复 7# Batcher [/b
非常感谢大佬可以了。




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