通過bat腳本文件設置系統環境變量

 通過bat腳本批處理設置JAVA_HOME, TOMCAT_HOME環境變量。

xp以前通過 wmic ENVIRONMENT來設置環境變量,不過這種設置方式沒辦法立即生效。

vista以後通過 setx 設置用戶環境變量, 加入 -M參數可設置系統環境變量,並且是立即生效(新開命令窗口,原命令窗口不生效)

 

@echo off

:: TODO:設置MC平臺環境變量
color 02

::設置java的安裝路徑
set javaPath=%~dp0jdk8
::設置tomcat的安裝路徑
set tomcatPath=%~dp0tomcat-7.0.94
 
:: 開始獲取系統版本
if /i not "%os%"=="Windows_NT" (set TheOS=not window os&set TheBit=) else (
ver | find "4.0" > nul && set TheOS=Windows 95 && goto newOSProcess
ver | find "4.10"> nul && set TheOS=Windows 98 && goto oldOSProcess
ver | find "4.90"> nul && set TheOS=Windows me && goto oldOSProcess
ver | find "3.51"> nul && set TheOS=Windows NT35 && goto oldOSProcess
ver | find "5.0" > nul && set TheOS=Windows 2000 && goto oldOSProcess
ver | find "5.1" > nul && set TheOS=Windows XP && goto oldOSProcess
ver | find "5.2" > nul && set TheOS=Windows 2003 && goto oldOSProcess
ver | find "6.0" > nul && set TheOS=Windows Vista && goto newOSProcess
ver | find "6.1" > nul && set TheOS=Windows 7 && goto newOSProcess
ver | find "6.2" > nul && set TheOS=Windows 8 && goto newOSProcess
ver | find "10.0"> nul && set TheOS=Windows 10 && goto newOSProcess
set TheBit=x%PROCESSOR_ARCHITECTURE:~-2%
)
goto UnknownVersion

::未知操作系統處理
:UnknownVersion
echo unsupport os..
goto end


::windowsxp以前版本的os環境變量處理,通過這種設置方式貌似在window7下不會立即生效,在xp中會不會立即生效未知。
:oldOSProcess
echo your os:%TheOS% %TheBit% go to oldOSProcess
::如果有的話,先刪除JAVA_HOME
wmic ENVIRONMENT where "name='JAVA_HOME'" delete
::如果有的話,先刪除TOMCAT_HOME
wmic ENVIRONMENT where "name='TOMCAT_HOME'" delete
::創建JAVA_HOME
wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%javaPath%"
::創建TOMCAT_HOME
wmic ENVIRONMENT create name="TOMCAT_HOME",username="<system>",VariableValue="%tomcatPath%"
echo JAVA_HOME: %javaPath%
echo TOMCAT_HOME: %tomcatPath%
goto end

::windows7,Vista 以後版本執行以下處理,立刻生效。
:newOSProcess
echo your os:%TheOS% %TheBit% go to newOSProcess
setx "JAVA_HOME" "%javaPath%" -M
setx "TOMCAT_HOME" "%tomcatPath%" -M

echo JAVA_HOME: %javaPath%
echo TOMCAT_HOME: %tomcatPath%
goto end

:end
pause

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章