228 lines
6.5 KiB
Batchfile
228 lines
6.5 KiB
Batchfile
|
|
@echo off
|
|||
|
|
chcp 65001 >nul
|
|||
|
|
echo ========================================
|
|||
|
|
echo NPQS9100 升级工具
|
|||
|
|
echo ========================================
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
REM 检查并创建 upgrade 目录
|
|||
|
|
if not exist upgrade (
|
|||
|
|
mkdir upgrade
|
|||
|
|
echo 【首次使用】已自动创建 upgrade 目录
|
|||
|
|
echo.
|
|||
|
|
echo 请将升级文件放入 upgrade 目录:
|
|||
|
|
echo - app.asar (前端升级包 - 文件)
|
|||
|
|
echo - app.asar.unpacked\ (前端升级包 - 文件夹)
|
|||
|
|
echo - entrance.jar (后端升级包)
|
|||
|
|
echo.
|
|||
|
|
echo 放置完成后,重新运行本脚本即可升级
|
|||
|
|
echo.
|
|||
|
|
pause
|
|||
|
|
exit /b 0
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
REM 检查是否有升级文件
|
|||
|
|
set hasUpgrade=0
|
|||
|
|
if exist upgrade\app.asar set hasUpgrade=1
|
|||
|
|
if exist upgrade\app.asar.unpacked set hasUpgrade=1
|
|||
|
|
if exist upgrade\entrance.jar set hasUpgrade=1
|
|||
|
|
|
|||
|
|
if %hasUpgrade%==0 (
|
|||
|
|
echo 【提示】upgrade 目录为空!
|
|||
|
|
echo.
|
|||
|
|
echo 请将升级文件放入 upgrade 目录:
|
|||
|
|
echo - app.asar (前端升级包 - 文件)
|
|||
|
|
echo - app.asar.unpacked\ (前端升级包 - 文件夹)
|
|||
|
|
echo - entrance.jar (后端升级包)
|
|||
|
|
echo.
|
|||
|
|
echo 放置完成后,重新运行本脚本即可升级
|
|||
|
|
echo.
|
|||
|
|
pause
|
|||
|
|
exit /b 0
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
echo 【检测到升级文件】
|
|||
|
|
if exist upgrade\app.asar echo - 前端升级(asar文件): upgrade\app.asar
|
|||
|
|
if exist upgrade\app.asar.unpacked echo - 前端升级(unpacked文件夹): upgrade\app.asar.unpacked\
|
|||
|
|
if exist upgrade\entrance.jar echo - 后端升级: upgrade\entrance.jar
|
|||
|
|
echo.
|
|||
|
|
echo 【重要提示】
|
|||
|
|
echo 1. 升级前会自动备份当前版本
|
|||
|
|
echo 2. 如升级失败可运行 rollback.bat 回滚
|
|||
|
|
echo 3. 数据库会自动备份到 mysql\data_backup\
|
|||
|
|
echo.
|
|||
|
|
pause
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo [1/6] 停止 NPQS9100 进程...
|
|||
|
|
taskkill /F /IM NPQS9100.exe 2>nul
|
|||
|
|
if %errorlevel% equ 0 (
|
|||
|
|
echo NPQS9100 已停止
|
|||
|
|
timeout /t 2 /nobreak >nul
|
|||
|
|
) else (
|
|||
|
|
echo NPQS9100 未运行
|
|||
|
|
)
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo [2/6] 备份当前版本(用于回滚)...
|
|||
|
|
if not exist backup mkdir backup
|
|||
|
|
|
|||
|
|
REM 备份前端(app.asar 和 app.asar.unpacked)
|
|||
|
|
if exist resources\app.asar (
|
|||
|
|
echo 正在备份前端 app.asar...
|
|||
|
|
if not exist backup mkdir backup
|
|||
|
|
copy /Y resources\app.asar backup\app.asar >nul 2>&1
|
|||
|
|
if %errorlevel% equ 0 (
|
|||
|
|
echo app.asar 备份完成
|
|||
|
|
) else (
|
|||
|
|
echo app.asar 备份失败
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
if exist resources\app.asar.unpacked (
|
|||
|
|
echo 正在备份前端 app.asar.unpacked...
|
|||
|
|
if exist backup\app.asar.unpacked (
|
|||
|
|
rmdir /s /q backup\app.asar.unpacked 2>nul
|
|||
|
|
)
|
|||
|
|
xcopy resources\app.asar.unpacked backup\app.asar.unpacked\ /E /I /Y /Q >nul 2>&1
|
|||
|
|
if %errorlevel% equ 0 (
|
|||
|
|
echo app.asar.unpacked 备份完成
|
|||
|
|
) else (
|
|||
|
|
echo app.asar.unpacked 备份失败
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
REM 备份后端
|
|||
|
|
if exist resources\extraResources\java\entrance.jar (
|
|||
|
|
echo 正在备份后端...
|
|||
|
|
copy /Y resources\extraResources\java\entrance.jar backup\entrance.jar >nul 2>&1
|
|||
|
|
if %errorlevel% equ 0 (
|
|||
|
|
echo 后端备份完成
|
|||
|
|
) else (
|
|||
|
|
echo 后端备份失败
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
REM 备份数据库
|
|||
|
|
if exist mysql\data (
|
|||
|
|
echo 正在备份数据库...
|
|||
|
|
if exist mysql\data_backup (
|
|||
|
|
rmdir /s /q mysql\data_backup 2>nul
|
|||
|
|
)
|
|||
|
|
xcopy mysql\data mysql\data_backup\ /E /I /Y /Q >nul 2>&1
|
|||
|
|
if %errorlevel% equ 0 (
|
|||
|
|
echo 数据库备份完成
|
|||
|
|
) else (
|
|||
|
|
echo 数据库备份失败,请手动备份后继续
|
|||
|
|
pause
|
|||
|
|
exit /b 1
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo [3/6] 记录版本信息...
|
|||
|
|
if not exist backup\version.txt (
|
|||
|
|
echo 备份时间: %date% %time% > backup\version.txt
|
|||
|
|
echo 升级前版本备份 >> backup\version.txt
|
|||
|
|
) else (
|
|||
|
|
echo 上次备份时间: %date% %time% >> backup\version.txt
|
|||
|
|
)
|
|||
|
|
echo 版本信息已记录
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo [4/6] 升级前端...
|
|||
|
|
set frontendUpgraded=0
|
|||
|
|
|
|||
|
|
REM 升级 app.asar
|
|||
|
|
if exist upgrade\app.asar (
|
|||
|
|
echo 正在替换 app.asar...
|
|||
|
|
copy /Y upgrade\app.asar resources\app.asar >nul 2>&1
|
|||
|
|
if %errorlevel% equ 0 (
|
|||
|
|
echo app.asar 升级完成
|
|||
|
|
set frontendUpgraded=1
|
|||
|
|
) else (
|
|||
|
|
echo app.asar 升级失败,正在回滚...
|
|||
|
|
if exist backup\app.asar (
|
|||
|
|
copy /Y backup\app.asar resources\app.asar >nul 2>&1
|
|||
|
|
echo 已回滚到升级前版本
|
|||
|
|
)
|
|||
|
|
pause
|
|||
|
|
exit /b 1
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
REM 升级 app.asar.unpacked
|
|||
|
|
if exist upgrade\app.asar.unpacked (
|
|||
|
|
echo 正在替换 app.asar.unpacked...
|
|||
|
|
if exist resources\app.asar.unpacked (
|
|||
|
|
rmdir /s /q resources\app.asar.unpacked 2>nul
|
|||
|
|
)
|
|||
|
|
xcopy upgrade\app.asar.unpacked resources\app.asar.unpacked\ /E /I /Y /Q >nul 2>&1
|
|||
|
|
if %errorlevel% equ 0 (
|
|||
|
|
echo app.asar.unpacked 升级完成
|
|||
|
|
set frontendUpgraded=1
|
|||
|
|
) else (
|
|||
|
|
echo app.asar.unpacked 升级失败,正在回滚...
|
|||
|
|
if exist backup\app.asar.unpacked (
|
|||
|
|
rmdir /s /q resources\app.asar.unpacked 2>nul
|
|||
|
|
xcopy backup\app.asar.unpacked resources\app.asar.unpacked\ /E /I /Y /Q >nul 2>&1
|
|||
|
|
echo 已回滚到升级前版本
|
|||
|
|
)
|
|||
|
|
pause
|
|||
|
|
exit /b 1
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
if %frontendUpgraded%==0 (
|
|||
|
|
echo 无前端升级包,跳过
|
|||
|
|
)
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo [5/6] 升级后端...
|
|||
|
|
if exist upgrade\entrance.jar (
|
|||
|
|
echo 正在替换 JAR 文件...
|
|||
|
|
copy /Y upgrade\entrance.jar resources\extraResources\java\entrance.jar >nul 2>&1
|
|||
|
|
if %errorlevel% equ 0 (
|
|||
|
|
echo 后端升级完成
|
|||
|
|
) else (
|
|||
|
|
echo 后端升级失败,正在回滚...
|
|||
|
|
if exist backup\entrance.jar (
|
|||
|
|
copy /Y backup\entrance.jar resources\extraResources\java\entrance.jar >nul 2>&1
|
|||
|
|
echo 已回滚到升级前版本
|
|||
|
|
)
|
|||
|
|
pause
|
|||
|
|
exit /b 1
|
|||
|
|
)
|
|||
|
|
) else (
|
|||
|
|
echo 无后端升级包,跳过
|
|||
|
|
)
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo [6/6] 记录升级日志...
|
|||
|
|
if not exist logs mkdir logs
|
|||
|
|
echo ========================================== >> logs\upgrade.log
|
|||
|
|
echo 升级时间: %date% %time% >> logs\upgrade.log
|
|||
|
|
if exist upgrade\dist (
|
|||
|
|
echo 升级内容: 前端 >> logs\upgrade.log
|
|||
|
|
)
|
|||
|
|
if exist upgrade\entrance.jar (
|
|||
|
|
echo 升级内容: 后端 >> logs\upgrade.log
|
|||
|
|
)
|
|||
|
|
echo ========================================== >> logs\upgrade.log
|
|||
|
|
echo 升级日志已记录
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo ========================================
|
|||
|
|
echo 升级完成!
|
|||
|
|
echo ========================================
|
|||
|
|
echo.
|
|||
|
|
echo 【提示】
|
|||
|
|
echo 1. 如需回滚,请运行 rollback.bat
|
|||
|
|
echo 2. 升级文件已使用,可删除 upgrade 目录
|
|||
|
|
echo.
|
|||
|
|
echo 您现在可以启动 NPQS9100 应用。
|
|||
|
|
echo.
|
|||
|
|
pause
|
|||
|
|
|
|||
|
|
|