200 lines
11 KiB
Batchfile
200 lines
11 KiB
Batchfile
|
@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
|