Files
SignatureSystem/install_service.bat
2026-07-20 13:16:17 +08:00

75 lines
2.3 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
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