@echo off setlocal enabledelayedexpansion chcp 65001 >nul 2>&1 title 注册自动签名系统服务 echo ======================================== echo 自动签名系统 - 注册 Windows 服务 echo ======================================== echo. cd /d "%~dp0" set SERVICE_NAME=SealWordSignService set SERVICE_DISPLAY=自动签名系统 Web 服务 set CURRENT_DIR=%~dp0 set CURRENT_DIR=%CURRENT_DIR:~0,-1% sc query %SERVICE_NAME% >nul 2>&1 if !errorlevel! equ 0 ( echo [警告] 服务 %SERVICE_NAME% 已存在,先停止并删除旧服务... net stop %SERVICE_NAME% >nul 2>&1 sc delete %SERVICE_NAME% >nul 2>&1 ) echo [1/3] 注册服务... if exist "%CURRENT_DIR%\python\python.exe" ( set BINARY_PATH=%CURRENT_DIR%\python\python.exe set BINARY_ARGS=-u "%CURRENT_DIR%\app.py" ) else ( set BINARY_PATH=python.exe set BINARY_ARGS=-u "%CURRENT_DIR%\app.py" ) sc create %SERVICE_NAME% binPath= "\"!BINARY_PATH!\" !BINARY_ARGS!" DisplayName= "%SERVICE_DISPLAY%" start= auto >nul 2>&1 if !errorlevel! neq 0 ( echo [错误] 注册服务失败,请以管理员身份运行此脚本。 pause exit /b 1 ) sc description %SERVICE_NAME% "泛微 Ecology OA 流程审批 Word 自动签章与公章插入服务" >nul 2>&1 echo [2/3] 注册 MySQL 服务(如内置 MySQL 存在)... set MYSQL_HOME=%CURRENT_DIR%\mysql if exist "%MYSQL_HOME%\bin\mysqld.exe" ( sc query MySql_SealWordSign >nul 2>&1 if !errorlevel! neq 0 ( "%MYSQL_HOME%\bin\mysqld.exe" --install MySql_SealWordSign --defaults-file="%MYSQL_HOME%\my.ini" >nul 2>&1 if !errorlevel! equ 0 ( sc config MySql_SealWordSign start= auto >nul 2>&1 net start MySql_SealWordSign >nul 2>&1 echo MySQL 服务已注册并启动 ) else ( echo [警告] MySQL 服务注册失败,应用仍可启动并回退到 SQLite ) ) else ( echo MySQL 服务已存在 ) ) else ( echo 未检测到内置 MySQL,跳过 MySQL 服务注册 ) echo [3/3] 启动 Web 服务... net start %SERVICE_NAME% >nul 2>&1 if !errorlevel! equ 0 ( echo 服务已启动:net start %SERVICE_NAME% echo 服务停止命令:net stop %SERVICE_NAME% echo 服务卸载命令:运行本目录下 uninstall_service.bat ) else ( echo [警告] 服务启动失败,请查看 Windows 事件日志 ) echo. pause