126 lines
3.5 KiB
Batchfile
126 lines
3.5 KiB
Batchfile
@echo off
|
||||
|
|
chcp 65001 >nul
|
|||
|
|
rem ============================================================
|
|||
|
|
rem 会话机制 · 一键开关
|
|||
|
|
rem
|
|||
|
|
rem 双击即可。做三件事:
|
|||
|
|
rem 1) 开 / 关 会话机制(常驻程序 + 看板)
|
|||
|
|
rem 2) 「全部停止」时,把「计划任务 + 进程」一次停干净
|
|||
|
|
rem 3) 结果写进同目录的「会话机制-结果.txt」并显示出来
|
|||
|
|
rem
|
|||
|
|
rem 为什么"停"要三步一起做:只禁任务,老进程还在跑;
|
|||
|
|
rem 只杀进程,任务到点又把它拉起来 —— 两边都做才算真停。
|
|||
|
|
rem ============================================================
|
|||
|
|
set "PYW=E:\ProgramData\.workbuddy\binaries\python\versions\3.13.12\pythonw.exe"
|
|||
|
|
set "CTL=E:\ProgramData\.workbuddy\skills\session-mechanism\scripts\collabctl.py"
|
|||
|
|
set "OUT=%~dp0会话机制-结果.txt"
|
|||
|
|
|
|||
|
|
cd /d "%~dp0"
|
|||
|
|
cls
|
|||
|
|
echo.
|
|||
|
|
echo ============================================
|
|||
|
|
echo 会话机制 · 一键开关
|
|||
|
|
echo ============================================
|
|||
|
|
echo.
|
|||
|
|
echo 1 = 全部启动(常驻 + 看板 开始运行)
|
|||
|
|
echo 2 = 全部停止(任务 + 进程 一起停干净)
|
|||
|
|
echo 3 = 只看状态(不改动任何东西)
|
|||
|
|
echo 4 = 只停指定工作区(可多个用逗号分隔,⛔ 不动看板与其它区)
|
|||
|
|
echo 0 = 退出
|
|||
|
|
echo.
|
|||
|
|
rem 🔴 也能直接带参数用(免交互):
|
|||
|
|
rem 会话机制-一键开关.bat off vibe-product
|
|||
|
|
rem 会话机制-一键开关.bat off vibe-product,contentm_agent
|
|||
|
|
if not "%~1"=="" goto arg_mode
|
|||
|
|
echo.
|
|||
|
|
set "CH="
|
|||
|
|
set /p CH= 请输入 1 / 2 / 3 / 0 :
|
|||
|
|
|
|||
|
|
if "%CH%"=="1" goto do_on
|
|||
|
|
if "%CH%"=="2" goto do_off
|
|||
|
|
if "%CH%"=="3" goto do_status
|
|||
|
|
if "%CH%"=="4" goto do_off_some
|
|||
|
|
if "%CH%"=="0" goto bye
|
|||
|
|
echo ⛔ 没看懂 "%CH%",请重新运行。
|
|||
|
|
pause
|
|||
|
|
goto bye
|
|||
|
|
|
|||
|
|
:arg_mode
|
|||
|
|
rem 🔴 带参数直用:`… .bat off <区名[,区名]>` ⇔ 「传哪些就关哪些」(⛔ 不动看板与其它区)
|
|||
|
|
if /i "%~1"=="off" goto arg_off
|
|||
|
|
if /i "%~1"=="status" goto do_status
|
|||
|
|
if /i "%~1"=="on" goto do_on
|
|||
|
|
echo ⛔ 认不出参数 "%~1"(只支持 off / status / on)。
|
|||
|
|
pause
|
|||
|
|
goto bye
|
|||
|
|
|
|||
|
|
:arg_off
|
|||
|
|
set "WSL=%~2"
|
|||
|
|
if "%WSL%"=="" ( echo. & echo ⛔ off 后面要跟区名(可多个,逗号分隔)。 & pause & goto bye )
|
|||
|
|
goto off_some_run
|
|||
|
|
|
|||
|
|
:do_off_some
|
|||
|
|
echo.
|
|||
|
|
echo 名单(三选,可多个): ai1net-dsh-server , vibe-product , contentm_agent
|
|||
|
|
set "WSL="
|
|||
|
|
set /p WSL= 要停哪些(逗号分隔):
|
|||
|
|
if "%WSL%"=="" ( echo. & echo ⛔ 没输入,已取消。 & pause & goto bye )
|
|||
|
|
|
|||
|
|
:off_some_run
|
|||
|
|
echo.
|
|||
|
|
echo 正在只停:%WSL%
|
|||
|
|
del "%OUT%" >nul 2>&1
|
|||
|
|
"%PYW%" "%CTL%" off --ws "%WSL%" --out "%OUT%"
|
|||
|
|
goto wait_show
|
|||
|
|
|
|||
|
|
:do_on
|
|||
|
|
echo.
|
|||
|
|
echo 正在启动…
|
|||
|
|
del "%OUT%" >nul 2>&1
|
|||
|
|
"%PYW%" "%CTL%" on --out "%OUT%"
|
|||
|
|
goto wait_show
|
|||
|
|
|
|||
|
|
:do_off
|
|||
|
|
echo.
|
|||
|
|
echo 正在全部停止(任务 + 进程)…
|
|||
|
|
del "%OUT%" >nul 2>&1
|
|||
|
|
"%PYW%" "%CTL%" off --out "%OUT%"
|
|||
|
|
goto wait_show
|
|||
|
|
|
|||
|
|
:do_status
|
|||
|
|
echo.
|
|||
|
|
echo 正在读取状态…
|
|||
|
|
del "%OUT%" >nul 2>&1
|
|||
|
|
"%PYW%" "%CTL%" status --out "%OUT%"
|
|||
|
|
goto wait_show
|
|||
|
|
|
|||
|
|
:wait_show
|
|||
|
|
rem 等 pythonw 把结果写完(最多 15 秒)
|
|||
|
|
set /a _n=0
|
|||
|
|
:wait_loop
|
|||
|
|
if exist "%OUT%" goto show
|
|||
|
|
set /a _n+=1
|
|||
|
|
if %_n% GEQ 15 goto show_miss
|
|||
|
|
ping -n 2 127.0.0.1 >nul
|
|||
|
|
goto wait_loop
|
|||
|
|
|
|||
|
|
:show
|
|||
|
|
echo.
|
|||
|
|
type "%OUT%"
|
|||
|
|
echo.
|
|||
|
|
echo --------------------------------------------
|
|||
|
|
echo 结果已存到:%OUT%
|
|||
|
|
echo --------------------------------------------
|
|||
|
|
pause
|
|||
|
|
goto bye
|
|||
|
|
|
|||
|
|
:show_miss
|
|||
|
|
echo.
|
|||
|
|
echo ⛔ 等不到结果文件,说明入口没跑起来。
|
|||
|
|
echo 请把下面这行发给我:
|
|||
|
|
echo %CTL%
|
|||
|
|
pause
|
|||
|
|
goto bye
|
|||
|
|
|
|||
|
|
:bye
|
|||
|
|
endlocal
|