Files
pqs-9100_client/build/rollback.bat

144 lines
3.2 KiB
Batchfile
Raw Normal View History

2025-11-27 20:50:59 +08:00
@echo off
chcp 65001 >nul
echo ========================================
echo NPQS9100 回滚工具
echo ========================================
echo.
echo 【重要提示】
echo 本工具用于回滚上次升级的内容
echo 回滚后将恢复到升级前的状态
echo.
pause
echo.
echo [1/5] 停止 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/5] 检查备份文件...
set hasBackup=0
if exist backup\app.asar (
echo 发现前端备份app.asar
set hasBackup=1
)
if exist backup\app.asar.unpacked (
echo 发现前端备份app.asar.unpacked
set hasBackup=1
)
if exist backup\entrance.jar (
echo 发现后端备份
set hasBackup=1
)
if exist mysql\data_backup (
echo 发现数据库备份
set hasBackup=1
)
if %hasBackup%==0 (
echo 未发现任何备份文件!
echo 无法执行回滚操作
pause
exit /b 1
)
echo.
echo [3/5] 回滚前端...
set frontendRollback=0
REM 回滚 app.asar
if exist backup\app.asar (
echo 正在恢复 app.asar...
copy /Y backup\app.asar resources\app.asar >nul 2>&1
if %errorlevel% equ 0 (
echo app.asar 已回滚
set frontendRollback=1
) else (
echo app.asar 回滚失败
pause
exit /b 1
)
)
REM 回滚 app.asar.unpacked
if exist backup\app.asar.unpacked (
echo 正在恢复 app.asar.unpacked...
if exist resources\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
if %errorlevel% equ 0 (
echo app.asar.unpacked 已回滚
set frontendRollback=1
) else (
echo app.asar.unpacked 回滚失败
pause
exit /b 1
)
)
if %frontendRollback%==0 (
echo 无前端备份,跳过
)
echo.
echo [4/5] 回滚后端...
if exist backup\entrance.jar (
echo 正在恢复 JAR 文件...
copy /Y backup\entrance.jar resources\extraResources\java\entrance.jar >nul 2>&1
if %errorlevel% equ 0 (
echo 后端已回滚
) else (
echo 后端回滚失败
pause
exit /b 1
)
) else (
echo 无后端备份,跳过
)
echo.
echo [5/5] 回滚数据库...
if exist mysql\data_backup (
echo 是否回滚数据库?(数据库回滚会丢失升级后的数据!)
echo [Y] 是 [N] 否
choice /C YN /N /M "请选择:"
if errorlevel 2 (
echo 已跳过数据库回滚
) else (
echo 正在回滚数据库...
if exist mysql\data (
rmdir /s /q mysql\data 2>nul
)
xcopy mysql\data_backup mysql\data\ /E /I /Y /Q >nul 2>&1
if %errorlevel% equ 0 (
echo 数据库已回滚
) else (
echo 数据库回滚失败
pause
exit /b 1
)
)
) else (
echo 无数据库备份,跳过
)
echo.
echo ========================================
echo 回滚完成!
echo ========================================
echo.
echo 您现在可以启动 NPQS9100 了
echo.
pause