@echo off chcp 65001 >nul setlocal enabledelayedexpansion :: ======================================== :: 教务系统 - Windows智能启动脚本 :: ======================================== :: 颜色定义 color 0A :: 清屏并显示标题 :MAIN_MENU cls echo ======================================== echo 教务系统 - 智能启动脚本 (Windows) echo ======================================== echo. echo 请选择操作: echo. echo 0) 启动所有产业 echo -------------- echo 1) 文旅产业 (端口: 5150) echo 2) 智能制造 (端口: 5151) echo 3) 智能开发 (端口: 5152) echo 4) 财经商贸 (端口: 5153) echo 5) 视觉设计 (端口: 5154) echo 6) 交通物流 (端口: 5155) echo 7) 大健康 (端口: 5156) echo 8) 土木水利 (端口: 5157) echo 9) 食品产业 (端口: 5158) echo 10) 化工产业 (端口: 5159) echo 11) 能源产业 (端口: 5160) echo 12) 环保产业 (端口: 5161) echo -------------- echo a) 停止所有产业 echo s) 查看运行状态 echo q) 退出 echo. set /p choice=请输入选项: if "%choice%"=="0" goto START_ALL if "%choice%"=="1" goto START_1 if "%choice%"=="2" goto START_2 if "%choice%"=="3" goto START_3 if "%choice%"=="4" goto START_4 if "%choice%"=="5" goto START_5 if "%choice%"=="6" goto START_6 if "%choice%"=="7" goto START_7 if "%choice%"=="8" goto START_8 if "%choice%"=="9" goto START_9 if "%choice%"=="10" goto START_10 if "%choice%"=="11" goto START_11 if "%choice%"=="12" goto START_12 if /i "%choice%"=="a" goto STOP_ALL if /i "%choice%"=="s" goto CHECK_STATUS if /i "%choice%"=="q" goto EXIT echo 无效选项! timeout /t 2 >nul goto MAIN_MENU :START_ALL echo. echo 正在启动所有产业... call :START_INDUSTRY frontend "文旅产业" 5150 call :START_INDUSTRY frontend_智能制造 "智能制造" 5151 call :START_INDUSTRY frontend_智能开发 "智能开发" 5152 call :START_INDUSTRY frontend_财经商贸 "财经商贸" 5153 call :START_INDUSTRY frontend_视觉设计 "视觉设计" 5154 call :START_INDUSTRY frontend_交通物流 "交通物流" 5155 call :START_INDUSTRY frontend_大健康 "大健康" 5156 call :START_INDUSTRY frontend_土木水利 "土木水利" 5157 call :START_INDUSTRY frontend_食品 "食品产业" 5158 call :START_INDUSTRY frontend_化工 "化工产业" 5159 call :START_INDUSTRY frontend_能源 "能源产业" 5160 call :START_INDUSTRY frontend_环保 "环保产业" 5161 echo. echo 所有产业启动完成! pause goto MAIN_MENU :START_1 call :START_INDUSTRY frontend "文旅产业" 5150 pause goto MAIN_MENU :START_2 call :START_INDUSTRY frontend_智能制造 "智能制造" 5151 pause goto MAIN_MENU :START_3 call :START_INDUSTRY frontend_智能开发 "智能开发" 5152 pause goto MAIN_MENU :START_4 call :START_INDUSTRY frontend_财经商贸 "财经商贸" 5153 pause goto MAIN_MENU :START_5 call :START_INDUSTRY frontend_视觉设计 "视觉设计" 5154 pause goto MAIN_MENU :START_6 call :START_INDUSTRY frontend_交通物流 "交通物流" 5155 pause goto MAIN_MENU :START_7 call :START_INDUSTRY frontend_大健康 "大健康" 5156 pause goto MAIN_MENU :START_8 call :START_INDUSTRY frontend_土木水利 "土木水利" 5157 pause goto MAIN_MENU :START_9 call :START_INDUSTRY frontend_食品 "食品产业" 5158 pause goto MAIN_MENU :START_10 call :START_INDUSTRY frontend_化工 "化工产业" 5159 pause goto MAIN_MENU :START_11 call :START_INDUSTRY frontend_能源 "能源产业" 5160 pause goto MAIN_MENU :START_12 call :START_INDUSTRY frontend_环保 "环保产业" 5161 pause goto MAIN_MENU :: 启动单个产业的函数 :START_INDUSTRY set dir=%1 set name=%2 set port=%3 echo. echo ======================================== echo 启动 %name% (端口: %port%) echo ======================================== :: 检查目录是否存在 if not exist "%dir%" ( echo [错误] 目录 %dir% 不存在! exit /b 1 ) :: 检查端口是否被占用 netstat -an | findstr ":%port%" >nul if %errorlevel%==0 ( echo [警告] 端口 %port% 已被占用 set /p stop_choice=是否停止现有服务并重启?(y/n): if /i "!stop_choice!"=="y" ( echo 正在停止端口 %port% 的服务... for /f "tokens=5" %%a in ('netstat -aon ^| findstr ":%port%"') do ( taskkill /F /PID %%a >nul 2>&1 ) timeout /t 2 >nul ) else ( echo 跳过 %name% exit /b 1 ) ) :: 检查并安装依赖 cd %dir% if not exist "node_modules" ( echo [信息] 检测到依赖未安装,正在安装... echo 这可能需要1-3分钟,请稍候... call npm install if !errorlevel! neq 0 ( echo [错误] %name% 依赖安装失败! cd .. exit /b 1 ) echo [成功] %name% 依赖安装成功! ) else ( echo [信息] %name% 依赖已存在 ) :: 启动服务 echo [信息] 正在启动 %name%... start /min cmd /c "npm run dev" cd .. timeout /t 3 >nul :: 验证启动 netstat -an | findstr ":%port%" >nul if %errorlevel%==0 ( echo [成功] %name% 启动成功! echo 访问地址: http://localhost:%port% ) else ( echo [错误] %name% 启动失败! exit /b 1 ) exit /b 0 :STOP_ALL echo. echo 正在停止所有产业服务... :: 停止所有node进程 taskkill /F /IM node.exe >nul 2>&1 echo 所有服务已停止 pause goto MAIN_MENU :CHECK_STATUS cls echo ======================================== echo 产业运行状态检查 echo ======================================== echo. call :CHECK_PORT 5150 "文旅产业" call :CHECK_PORT 5151 "智能制造" call :CHECK_PORT 5152 "智能开发" call :CHECK_PORT 5153 "财经商贸" call :CHECK_PORT 5154 "视觉设计" call :CHECK_PORT 5155 "交通物流" call :CHECK_PORT 5156 "大健康" call :CHECK_PORT 5157 "土木水利" call :CHECK_PORT 5158 "食品产业" call :CHECK_PORT 5159 "化工产业" call :CHECK_PORT 5160 "能源产业" call :CHECK_PORT 5161 "环保产业" echo. pause goto MAIN_MENU :CHECK_PORT netstat -an | findstr ":%1" >nul if %errorlevel%==0 ( echo [运行中] %2 (端口: %1) - http://localhost:%1 ) else ( echo [未启动] %2 (端口: %1) ) exit /b 0 :EXIT echo 再见! exit