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

[系统相关] 使用批处理脚本检查环境中是否存在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也被覆盖了,请问如何改正

回复 1# cidsxwf

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

setx
描述:
    在用户或系统环境创建或修改环境变量。能基于参数、注册表项或文件输
    入设置变量。

TOP

  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
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Batcher
java_home还是为空

TOP

回复 4# cidsxwf


    3楼代码已更新,你再试试。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# Batcher

感谢大佬,java_home的值有了,但是path没有添加。

TOP

回复 6# cidsxwf


    3楼又更新了一下,再执行看看还有报错吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

TOP

返回列表