# Windows 部署脚本
只需要把 jar 和 yml 跟批处理放在同一目录下即可点击快速启动。启动后再次点击会关闭上次启动的窗口并重新启动。
拷贝以下代码放入 txt 文本,然后改为 start.bat
@ECHO OFF | |
setlocal enabledelayedexpansion | |
REM 关闭上次进程 | |
SET "pidFile=pid.txt" | |
if exist "%pidFile%" ( | |
for /f "usebackq" %%a in ("pid.txt") do ( | |
set PID=%%a | |
) | |
if not "!PID!"=="" ( | |
taskkill /F /T /PID !pid! | |
del pid.txt | |
) | |
) | |
REM 存储当前进程 | |
for /f %%i in ('wmic process where "name='cmd.exe' and CommandLine like '%%<scriptname>.bat%%'" get ParentProcessId ^| findstr /r "[0-9]"') do set pid=%%i | |
echo %PID% > pid.txt | |
REM 设置title | |
for /f "tokens=2" %%i in ('chcp') do set codepage=%%i | |
chcp 65001 > nul | |
title 我的SpringBoot项目 | |
chcp %codepage% > nul | |
cd %~dp0 | |
REM 获取jar | |
set "jarFile=" | |
for %%i in (*.jar) do ( | |
if not defined jarFile ( | |
set "jarFile=%%i" | |
) | |
) | |
if not defined jarFile ( | |
echo not find jar | |
pause | |
exit | |
) | |
SET JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF-8 | |
set JAVA_OPTS=%JAVA_OPTS% -Dsun.jnu.encoding=UTF8 -Xms512m -Xmx1024m | |
set JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5007 | |
set JAVA_OPTS=%JAVA_OPTS% -Dpid.path=./temp | |
REM 获取yml | |
set "ymlFile=" | |
for %%i in (*.yml) do ( | |
if not defined ymlFile ( | |
set "ymlFile=%%i" | |
) | |
) | |
if defined ymlFile ( | |
set JAVA_OPTS=%JAVA_OPTS% -Dspring.config.additional-location=!ymlFile! | |
) else ( | |
echo not find yml | |
) | |
REM 启动服务 | |
java %JAVA_OPTS% -jar !jarFile! | |
pause |
拷贝以下代码放入 txt 文本,然后改为 stop.bat
@ECHO OFF | |
setlocal enabledelayedexpansion | |
REM 关闭上次进程 | |
SET "pidFile=pid.txt" | |
if exist "%pidFile%" ( | |
for /f "usebackq" %%a in ("pid.txt") do ( | |
set PID=%%a | |
) | |
if not "!PID!"=="" ( | |
taskkill /F /T /PID !pid! | |
del pid.txt | |
) | |
) | |
exit |