Files
pqs-9100_client/build/rollback.bat
2025-11-27 20:50:59 +08:00

144 lines
3.2 KiB
Batchfile
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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