VWED_server/packaging/scripts/build_integrated.bat
2025-09-09 10:41:27 +08:00

200 lines
11 KiB
Batchfile
Raw 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 VWED任务系统集成版打包工具
echo ================================================
echo.
echo 功能: 配置界面 + 服务启动 合二为一
echo.
cd /d "%~dp0\.."
echo 检查Python环境...
python --version
if %errorlevel% neq 0 (
echo 错误: 未找到Python环境请确保Python已安装并添加到PATH
pause
exit /b 1
)
echo.
echo 清理旧的构建文件...
if exist "..\dist" rmdir /s /q "..\dist"
if exist "..\build" rmdir /s /q "..\build"
echo.
echo 构建集成版本...
pyinstaller --clean vwed_integrated.spec
if %errorlevel% neq 0 (
echo 集成版本构建失败!
pause
exit /b 1
)
echo.
echo 创建发布包...
if not exist "dist\VWED_Task_Release" mkdir "dist\VWED_Task_Release"
if exist "dist\VWED_Task_System.exe" (
copy "dist\VWED_Task_System.exe" "dist\VWED_Task_Release\"
echo ✓ 主程序复制完成
) else (
echo ✗ 未找到主程序文件
echo 查找文件位置...
dir dist\*.exe
pause
exit /b 1
)
if exist "dist\VWED_Task_System_Debug.exe" (
copy "dist\VWED_Task_System_Debug.exe" "dist\VWED_Task_Release\"
echo ✓ 调试版本复制完成
) else (
echo ! 未找到调试版本文件(这是正常的,如果构建时只生成了一个版本)
)
echo.
echo 创建启动脚本...
echo @echo off > "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo chcp 65001 ^>nul >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo echo 正在启动VWED任务系统... >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo echo 首次启动将显示配置界面,配置完成后自动启动服务 >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo echo. >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo cd /d "%%~dp0" >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo if exist VWED_Task_System_Debug.exe ( >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo echo 使用调试版本启动以便查看详细信息... >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo VWED_Task_System_Debug.exe >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo ^) else ( >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo VWED_Task_System.exe >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo ^) >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo pause >> "dist\VWED_Task_Release\启动VWED任务系统.bat"
echo 创建后台启动脚本...
echo @echo off > "dist\VWED_Task_Release\后台启动服务.bat"
echo chcp 65001 ^>nul >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 正在后台启动VWED任务系统服务... >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 服务将在后台运行,不显示窗口 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo cd /d "%%~dp0" >> "dist\VWED_Task_Release\后台启动服务.bat"
echo if exist vwed_service.pid ( >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 检测到服务可能已在运行,请先停止服务 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 如果服务未运行,请手动删除 vwed_service.pid 文件 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo pause >> "dist\VWED_Task_Release\后台启动服务.bat"
echo exit /b 1 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo ^) >> "dist\VWED_Task_Release\后台启动服务.bat"
echo start /min VWED_Task_System.exe --headless >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 服务已在后台启动 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 日志文件: vwed_service.log >> "dist\VWED_Task_Release\后台启动服务.bat"
echo echo 使用"停止服务.bat"可停止后台服务 >> "dist\VWED_Task_Release\后台启动服务.bat"
echo pause >> "dist\VWED_Task_Release\后台启动服务.bat"
echo 创建服务状态检查脚本...
echo @echo off > "dist\VWED_Task_Release\检查服务状态.bat"
echo chcp 65001 ^>nul >> "dist\VWED_Task_Release\检查服务状态.bat"
echo echo 检查VWED任务系统服务状态... >> "dist\VWED_Task_Release\检查服务状态.bat"
echo cd /d "%%~dp0" >> "dist\VWED_Task_Release\检查服务状态.bat"
echo if exist vwed_service.pid ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo set /p pid=^<vwed_service.pid >> "dist\VWED_Task_Release\检查服务状态.bat"
echo tasklist /fi "PID eq %%pid%%" 2^>nul ^| find "%%pid%%" ^>nul >> "dist\VWED_Task_Release\检查服务状态.bat"
echo if !errorlevel!==0 ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo echo 服务正在运行 ^(PID: %%pid%%^) >> "dist\VWED_Task_Release\检查服务状态.bat"
echo echo 服务地址: http://localhost:8000 >> "dist\VWED_Task_Release\检查服务状态.bat"
echo ^) else ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo echo 服务进程不存在清理PID文件... >> "dist\VWED_Task_Release\检查服务状态.bat"
echo del vwed_service.pid >> "dist\VWED_Task_Release\检查服务状态.bat"
echo echo 服务未运行 >> "dist\VWED_Task_Release\检查服务状态.bat"
echo ^) >> "dist\VWED_Task_Release\检查服务状态.bat"
echo ^) else ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo echo 服务未运行 >> "dist\VWED_Task_Release\检查服务状态.bat"
echo ^) >> "dist\VWED_Task_Release\检查服务状态.bat"
echo if exist vwed_service.log ( >> "dist\VWED_Task_Release\检查服务状态.bat"
echo echo. >> "dist\VWED_Task_Release\检查服务状态.bat"
echo echo 最近的日志内容: >> "dist\VWED_Task_Release\检查服务状态.bat"
echo powershell "Get-Content vwed_service.log -Tail 10" >> "dist\VWED_Task_Release\检查服务状态.bat"
echo ^) >> "dist\VWED_Task_Release\检查服务状态.bat"
echo pause >> "dist\VWED_Task_Release\检查服务状态.bat"
echo @echo off > "dist\VWED_Task_Release\停止服务.bat"
echo chcp 65001 ^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo echo 正在停止VWED任务系统服务... >> "dist\VWED_Task_Release\停止服务.bat"
echo cd /d "%%~dp0" >> "dist\VWED_Task_Release\停止服务.bat"
echo if exist vwed_service.pid ( >> "dist\VWED_Task_Release\停止服务.bat"
echo set /p pid=^<vwed_service.pid >> "dist\VWED_Task_Release\停止服务.bat"
echo taskkill /pid %%pid%% /f 2^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo if !errorlevel!==0 ( >> "dist\VWED_Task_Release\停止服务.bat"
echo echo 服务已停止 ^(PID: %%pid%%^) >> "dist\VWED_Task_Release\停止服务.bat"
echo ^) else ( >> "dist\VWED_Task_Release\停止服务.bat"
echo echo 未找到进程,尝试按进程名停止... >> "dist\VWED_Task_Release\停止服务.bat"
echo taskkill /f /im VWED_Task_System.exe 2^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo ^) >> "dist\VWED_Task_Release\停止服务.bat"
echo del vwed_service.pid 2^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo ^) else ( >> "dist\VWED_Task_Release\停止服务.bat"
echo echo 未找到PID文件尝试按进程名停止... >> "dist\VWED_Task_Release\停止服务.bat"
echo taskkill /f /im VWED_Task_System.exe 2^>nul >> "dist\VWED_Task_Release\停止服务.bat"
echo if %%errorlevel%%==0 ( >> "dist\VWED_Task_Release\停止服务.bat"
echo echo 服务已停止 >> "dist\VWED_Task_Release\停止服务.bat"
echo ^) else ( >> "dist\VWED_Task_Release\停止服务.bat"
echo echo 没有找到运行中的服务进程 >> "dist\VWED_Task_Release\停止服务.bat"
echo ^) >> "dist\VWED_Task_Release\停止服务.bat"
echo ^) >> "dist\VWED_Task_Release\停止服务.bat"
echo pause >> "dist\VWED_Task_Release\停止服务.bat"
echo.
echo 创建使用说明...
echo VWED任务系统集成版使用说明 > "dist\VWED_Task_Release\使用说明.txt"
echo ========================== >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 本版本将配置界面和服务启动合并为单个可执行文件,支持前台和后台运行。 >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 前台运行(带界面): >> "dist\VWED_Task_Release\使用说明.txt"
echo 1. 双击 "启动VWED任务系统.bat" >> "dist\VWED_Task_Release\使用说明.txt"
echo 2. 首次启动会显示配置界面 >> "dist\VWED_Task_Release\使用说明.txt"
echo 3. 配置数据库连接和API地址 >> "dist\VWED_Task_Release\使用说明.txt"
echo 4. 点击"测试数据库连接"确保连接正常 >> "dist\VWED_Task_Release\使用说明.txt"
echo 5. 点击"完成配置并启动服务" >> "dist\VWED_Task_Release\使用说明.txt"
echo 6. 配置界面自动关闭,服务在当前窗口启动 >> "dist\VWED_Task_Release\使用说明.txt"
echo 7. 在浏览器中访问 http://localhost:8000 >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 后台运行(无界面): >> "dist\VWED_Task_Release\使用说明.txt"
echo 1. 双击 "后台启动服务.bat" >> "dist\VWED_Task_Release\使用说明.txt"
echo 2. 服务将在后台运行,不显示任何窗口 >> "dist\VWED_Task_Release\使用说明.txt"
echo 3. 使用 "检查服务状态.bat" 查看运行状态 >> "dist\VWED_Task_Release\使用说明.txt"
echo 4. 使用 "停止服务.bat" 停止后台服务 >> "dist\VWED_Task_Release\使用说明.txt"
echo 5. 服务日志保存在 vwed_service.log 文件中 >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 注意事项: >> "dist\VWED_Task_Release\使用说明.txt"
echo - 配置保存在同目录下的 config.ini 文件中 >> "dist\VWED_Task_Release\使用说明.txt"
echo - 再次启动时会自动加载已保存的配置 >> "dist\VWED_Task_Release\使用说明.txt"
echo - 如需修改配置,删除 config.ini 后重新启动 >> "dist\VWED_Task_Release\使用说明.txt"
echo - 后台运行模式下,请通过日志文件查看运行状态 >> "dist\VWED_Task_Release\使用说明.txt"
echo - PID文件 vwed_service.pid 用于跟踪后台进程 >> "dist\VWED_Task_Release\使用说明.txt"
echo. >> "dist\VWED_Task_Release\使用说明.txt"
echo 调试版本: >> "dist\VWED_Task_Release\使用说明.txt"
echo - VWED_Task_System_Debug.exe 为调试版本,保留控制台窗口 >> "dist\VWED_Task_Release\使用说明.txt"
echo - 遇到问题时可使用调试版本查看详细信息 >> "dist\VWED_Task_Release\使用说明.txt"
echo.
echo ================================================
echo 集成版本构建完成!
echo ================================================
echo.
echo 发布包位置: dist\VWED_Task_Release\
echo.
echo 文件清单:
echo ✓ VWED_Task_System.exe - 主程序(无窗口,支持后台运行)
echo ✓ VWED_Task_System_Debug.exe - 调试版本(带控制台窗口)
echo ✓ 启动VWED任务系统.bat - 前台启动脚本
echo ✓ 后台启动服务.bat - 后台启动脚本
echo ✓ 检查服务状态.bat - 服务状态检查
echo ✓ 停止服务.bat - 停止服务脚本
echo ✓ 使用说明.txt - 详细使用说明
echo.
echo 新特性:
echo ✓ 支持前台和后台运行模式
echo ✓ 后台运行时无窗口,适合服务器部署
echo ✓ 日志记录到文件 vwed_service.log
echo ✓ PID文件管理支持精确停止进程
echo ✓ 服务状态检查功能
echo ✓ 调试版本用于问题排查
echo.
pause