bat運行springcloud

第一步編寫每一個項目的構建、啓動、殺死腳本

@echo off

::默認PID,無需修改
set "PID=999999"
::記錄當前目錄,無需修改
set "CURRENT_PATH=%cd%"

::指定java_home路徑,不能起名JAVA_HOME,會覆蓋環境變量
set "JAVA_HOME_CUSTOM=D:\DevTool\jdk1.8.0_181"
::指定jre_home
set "JRE_HOME_CUSTOM=%JAVA_HOME_CUSTOM%\jre"
::指定maven_home,不能起名MAVEN_HOME,會覆蓋環境變量
set "MAVEN_HOME_CUSTOM=D:\DevTool\apache-maven-3.5.4"


::指定程序工作路徑
set "SERVICE_DIR=D:\xiaowei1\gitlabdep\chanpay-eureka\chanpay-eureka"
::指定程序包名
set "JARNAME=chanpay-eureka.jar"
::指定程序端口號
set "port=9080"
::指定程序啓動日誌名
set "LOG_FILE=chanpay-eureka.log"



::流程控制
if "%1"=="start" (
  call:START
) else (
  if "%1"=="stop" ( 
    call:STOP 
  ) else ( 
    if "%1"=="restart" (
	  call:RESTART 
	) else ( 
	  call:DEFAULT 
	)
  )
)

goto:eof


::啓動jar包
:START
echo function "start" starting...
cd /d %SERVICE_DIR%
call %MAVEN_HOME_CUSTOM%\bin\mvn clean install
echo "%JRE_HOME_CUSTOM%\bin\java"
start /b "%JRE_HOME_CUSTOM%\bin\" java.exe -Xms128m -Xmx512m -jar %SERVICE_DIR%\target\%JARNAME% > %SERVICE_DIR%\logs\%LOG_FILE%
cd /d %CURRENT_PATH%
echo == service start success
goto:eof


::停止java程序運行
:STOP
echo function "stop" starting...
call:findPid
call:shutdown
echo == service stop success
goto:eof


::重啓jar包
:RESTART
echo function "restart" starting...
call:STOP
call:sleep2
call:START
echo == service restart success
goto:eof


::執行默認方法--重啓jar包
:DEFAULT
echo Now choose default item : restart
call:STOP
call:sleep2
call:START
echo == service restart success
goto:eof


::找到端口對應程序的pid
:findPid
echo function "findPid" start.
for /f "tokens=5" %%i in ('netstat -aon ^| findstr %port%') do (
    set "PID=%%i"
)
if "%PID%"=="999999" ( echo pid not find, skip stop . ) else ( echo pid is %PID%. )
goto:eof


::殺死pid對應的程序
:shutdown
if not "%PID%"=="999999" ( taskkill /f /pid %PID% )
goto:eof


::延時5秒
:sleep5
ping 127.0.0.1 -n 5 >nul
goto:eof


::延時2秒
:sleep2
ping 127.0.0.1 -n 2 >nul
goto:eof

第二步編寫上一步寫的腳本的調用腳本

@echo off

::其他bat工作路徑
set "OTHER_BAT_WORK_SPACE=D:\xiaowei1\startBat"
::記錄當前目錄,無需修改
set "CURRENT_ROOT_PATH=%cd%"
::啓動命令(start|stop|restart|其他默認重啓)
set "PARAM1="



::流程控制
if "%1"=="start" (
  set "PARAM1=%1"
) else (
  if "%1"=="stop" ( 
    set "PARAM1=%1"
  ) else ( 
    if "%1"=="restart" (
	  set "PARAM1=%1"
	) else ( 
	  if "%1"=="" (
	    set "PARAM1=restart" 
	  ) else (
	    set "PARAM1=restart"
	  )
	)
  )
)

::項目主流程開始

echo facade.bat starting...
call %OTHER_BAT_WORK_SPACE%\facade.bat %PARAM1%

echo eureka.bat starting...
call %OTHER_BAT_WORK_SPACE%\eureka.bat %PARAM1%


echo service-base.bat starting...
call %OTHER_BAT_WORK_SPACE%\service-base.bat %PARAM1%

echo service-cache.bat starting...
call %OTHER_BAT_WORK_SPACE%\service-cache.bat %PARAM1%

echo service-monitor.bat starting...
call %OTHER_BAT_WORK_SPACE%\service-monitor.bat %PARAM1%

echo service-permission.bat starting...
call %OTHER_BAT_WORK_SPACE%\service-permission.bat %PARAM1%

echo hsm-keyou.bat starting...
call %OTHER_BAT_WORK_SPACE%\hsm-keyou.bat %PARAM1%

cd /d %CURRENT_ROOT_PATH%

echo ---all services have started successful---

goto:eof

至此大功告成。

ps:別忘了替換文件開始的配置

雙擊最後的腳本就會運行你所配置的項目了。當然,要停止的話,可以有兩種方法。

1. 直接關閉命令行

2. 命令行執行 xxx.bat stop

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