Files
CN_Tool_client/build/rollback.bat

113 lines
2.5 KiB
Batchfile
Raw Normal View History

2026-04-13 17:32:58 +08:00
@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