@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