bat JDK安装

1 篇文章 0 订阅
这段脚本用于检查和设置Windows系统的JAVA_HOME和Path环境变量。它首先读取并记录当前Path,然后通过文件获取Java路径,确保取得管理员权限。接着,检查JAVA_HOME是否已存在于Path中,若未找到则添加。最后,更新环境变量并记录操作日志。
摘要由CSDN通过智能技术生成
@echo off
set remain=%Path%
echo "remain":%remain%>>../../log/log.txt
rem 屏蔽多余输出
CHCP 65001 > nul 
rem 之前添加admin权限的时候,发现传参丢失,特殊处理,懒得改了。
echo %1>javaPath.txt

rem 切换到当前目录环境
set CURRENT_PATH=/d %~dp0
cd %CURRENT_PATH%
set cds=%~dp0
rem 成功取得Administrator权限
if not exist %cds%javaPath.txt (
  @echo false
  goto end
) else (
  rem 从文件中获取javaPath
  for /f "delims='" %%a in (%cds%javaPath.txt) do (
	set JAVAHOME=%%a
  )
  echo 从文件中获取%JAVAHOME%>>../../log/log.txt
  del %cds%javaPath.txt >nul
)
rem 环境变量path
echo "remain":%remain%>>../../log/log.txt
set finded=false
set toAdd=%%JAVA_HOME%%\bin

:loop
for /f "tokens=1* delims=;" %%a in ("%remain%") do (
	::如果找到相同的了
	if "%toAdd%"=="%%a" (
		::该表标记,true表示有重复的了
		set finded=true
		rem path环境变量中已经有了该环境变量,无须重复添加.
		::直接退出
		goto :isFinded
	)
	rem 将截取剩下的部分赋给变量remain,其实这里可以使用延迟变量开关
	set remain=%%b
)
::如果还有剩余,则继续分割
if defined remain goto :loop

:isFinded
::如果没有重复:
if "%finded%"=="false" (
	rem path添加javahome/bin
	setx /M JAVA_HOME "%JAVAHOME%" >>../../log/log.txt
	setx /M "Path" "%Path%;%%JAVA_HOME%%\bin" >>../../log/log.txt
	echo 设置path"%path%;%%JAVA_HOME%%\bin" >> ../../log/log.txt
)
// 感觉没什么用,就注释了,有大佬可以指点一下部分教程要求写注册表的原因。
rem set RegV=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
rem reg add "%RegV%" /v "JAVA_HOME" /d "%JAVAHOME%" /f >nul
rem reg add "%RegV%" /v "Path" /t REG_EXPAND_SZ /d "%path%;%%JAVA_HOME%%\bin" /f >nul
echo 设置java_home:"%JAVAHOME%">> ../../log/log.txt
@echo true
exit
`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值