找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33948|回复: 7

[系统相关] 使用批处理脚本检查环境中是否存在JAVA_HOME

[复制链接]
发表于 2019-1-17 11:39:18 | 显示全部楼层 |阅读模式
使用批处理脚本检查环境中是否存在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也被覆盖了,请问如何改正
发表于 2019-1-17 11:50:13 | 显示全部楼层
回复 1# cidsxwf

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

setx
描述:
    在用户或系统环境创建或修改环境变量。能基于参数、注册表项或文件输
    入设置变量。
发表于 2019-1-17 12:33:15 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2019-1-17 14:09:29 | 显示全部楼层
回复 3# Batcher
java_home还是为空
发表于 2019-1-17 15:32:09 | 显示全部楼层
回复 4# cidsxwf


    3楼代码已更新,你再试试。
 楼主| 发表于 2019-1-17 17:14:01 | 显示全部楼层
回复 5# Batcher

感谢大佬,java_home的值有了,但是path没有添加。
发表于 2019-1-17 17:33:23 | 显示全部楼层
回复 6# cidsxwf


    3楼又更新了一下,再执行看看还有报错吗?
 楼主| 发表于 2019-1-18 09:14:31 | 显示全部楼层
回复 7# Batcher [/b
非常感谢大佬可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:27 , Processed in 0.030703 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表