人懶,就得“多干活”!
正常安裝JDK 的話,它會修改系統的path 變量,加入自己的調用路徑(jre)

這樣,我們剛安裝好后,就可直接調用java –verbose 查看jre 安裝的目錄了。
(如果你是批處理安裝的,那么當前是無法調用的,可另開新窗口就可調用了)
主要代碼,就三行( 默認都是用戶變量,兩個%轉義,還有^輸出轉義)
setx CLASSPATH ".;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\tools.jar"
setx PATH ";%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin"
setx JAVA_HOME " C:\ProgramFiles\Java\jdk1.8.0_111"
代碼復制到文本文件,另存為 XXX.bat ,然后把jdk安裝文件拖在XXX.bat上即可

寫入的都是 相對路徑

-----------------完整 批處理 復制以下-----
@Echo Off
title 正在為您安裝 jdk...
color 0a
mode con cols=50 lines=20
echo 正在為您安裝 jdk...
rem 從拖入的文件獲取路徑並執行,等待安裝結束
start /w %1 /s
rem 用java -verbose 獲取JAVA安裝路徑
for /f "delims=" %%a in ('%programdata%\Oracle\Java\javapath\java -verbose') do (
set Java_path=%%a
)
rem 分別獲取安裝盤符,與目錄再拼接成絕對路徑
for /f "tokens=1,2 delims=':'" %%i in ("%Java_path%") do (
set str1=%%i
set str2=%%j
)
set Java_path=%str1:~-1%:%str2:~0,-1%
rem 截取JAVA安裝的目錄
set Java_path=%Java_path:~0,-11%
rem 將字符串中的jre換成jdk
set Java_path=%Java_path:Java\jre=Java\jdk%
echo %Java_path%
rem 以腳本變量 替換用戶或系統中的變量,可以寫入引用路徑
set JAVA_HOME =""
rem 設置 javac 的用戶變量,如果想成系統變量請加 -m
setx CLASSPATH ".;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\tools.jar"
setx PATH ";%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin"
setx JAVA_HOME "%Java_path%"
cls
Echo. --------安裝結束-----------
echo 如果 輸入javac 沒有反映,請重啟下機器
pause
-----------------完整 批處理 復制以上-----
如果我想在 path 的基礎上 加入 對tomcat目錄里的php的引用,怎么加?
可以在用戶
變量名 上寫 TOMCAT_HOME
變量值 上寫 C:\apache-tomcat-7.0.40
Path 里只要寫 setx path "%path%;%TOMCAT_HOME%\php" 就可以引用了

setx /k /? 有一條 /K regpath 指定變量是基於注冊表項的信息而設置的。
這條是說,設置一條基於注冊表信息的變量,就是讀取注冊表的結果為設置環境變量的值。
如下圖

PS 一些常識
上面可以看到用戶環境變量 與 系統環境變量 中都有path ,
從截圖上可以看出,查詢的過程是path 的結果是 系統變量加用戶,先查系統再查用戶
我們修改用戶變量時,會修改注冊表的兩個地方
[HKEY_CURRENT_USER\Environment]
[HKEY_USERS\S-1-5-21-xxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-500\Environment](500是管理員)

第一個指當前用戶,就是當前安裝jdk 的用戶
第二個是Public 用戶,公共用的,有些用戶安裝的東西 for everyone 的那種。
所以上面的那3 行代碼,就可以寫成
reg add HKCU\Environment /v CLASSPATH /tREG_EXPAND_SZ /d ".;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\tools.jar" /f
reg add HKCU\Environment /v PATH /t REG_EXPAND_SZ /d ";%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;"/f
reg add HKCU\Environment /v JAVA_HOME /tREG_SZ /d " C:\Program Files\Java\jdk1.8.0_111" /f
---------------------------------------------
reg query HKEY_CURRENT_USER\Environment /v JAVA_HOME //查看
reg delete HKCU\Environment /v JAVA_HOME /f //刪除
------------------------------------------
