@echo off chcp 65001 >nul setlocal echo ======================================== echo CN_Tool 回滚工具 echo ======================================== echo. echo 【重要提示】 echo 本工具仅回滚前后端程序文件 echo 数据库不会由本脚本自动恢复 echo 如需恢复数据库,请手动执行之前导出的 SQL 备份 echo. pause echo. echo [1/4] 停止 CN_Tool 进程... taskkill /F /IM CN_Tool.exe 2>nul if %errorlevel% equ 0 ( echo CN_Tool 已停止 timeout /t 2 /nobreak >nul ) else ( echo CN_Tool 未运行 ) echo. echo [2/4] 检查备份文件... 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 %hasBackup%==0 ( echo 未发现任何前后端备份文件! echo 无法执行回滚操作 pause exit /b 1 ) echo. echo [3/4] 回滚前端... set frontendRollback=0 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 ) ) 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/4] 回滚后端... 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 ======================================== echo 回滚完成! echo ======================================== echo. echo 如需恢复数据库,请手动执行之前导出的 SQL 备份。 echo 您现在可以启动 CN_Tool 了 echo. pause