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

67 lines
1.8 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
chcp 65001 >nul 2>&1
rem 浏览器自动打开子模式: 通过参数 _open_browser 触发
if /i "%~1"=="_open_browser" goto :open_browser_mode
title 自动签名系统 (Web)
echo ========================================
echo 自动签名系统 - Web 服务启动中...
echo ========================================
echo.
cd /d "%~dp0"
rem 检查 MySQL 状态 (仅提示, 不阻断)
netstat -aon | findstr ":33366 " | findstr "LISTENING" >nul 2>&1
if !errorlevel! equ 0 (
echo [MySQL] 已检测到 MySQL 运行 (端口 33366)
) else (
echo [警告] MySQL 未运行 (端口 33366 未监听)
echo 系统将回退到 SQLite, 数据不会与 MySQL 同步
echo 如需使用 MySQL, 请先运行 start_mysql.bat
)
echo.
echo [Web] 正在启动 Web 服务...
echo [Web] 启动成功后将自动打开浏览器 (默认地址: http://127.0.0.1:5001/)
echo.
rem 启动后台任务: 等待端口就绪后自动打开浏览器 (兼容 5001 / 5002 回退)
start "" /B "%~f0" _open_browser
if not exist "python" (
echo 正在使用系统 Python...
python app.py
) else (
echo 正在使用内置 Python...
python\python.exe app.py
)
echo.
echo Web 服务已停止运行。
echo [提示] MySQL 不受影响, 仍在后台运行 (如已启动)。
echo 完全停止 MySQL 请运行 stop.bat 或 stop_mysql.bat
echo.
pause
exit /b 0
rem ===== 子模式: 轮询端口并打开浏览器 =====
:open_browser_mode
for /L %%i in (1,1,120) do (
timeout /t 1 /nobreak >nul 2>&1
netstat -aon | findstr ":5001 " | findstr "LISTENING" >nul 2>&1
if !errorlevel! equ 0 (
start "" http://127.0.0.1:5001/
exit /b 0
)
netstat -aon | findstr ":5002 " | findstr "LISTENING" >nul 2>&1
if !errorlevel! equ 0 (
start "" http://127.0.0.1:5002/
exit /b 0
)
)
exit /b 0