Files
dsh_ai1net_server/会话机制-一键开关.bat
T
admin c1b5e4d966 chore(工作区): 全量入库 + 补齐 .gitignore(以工作区为准)
- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次)
- .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…),
  目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪
- .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/)
- .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*)
- .gitignore 补:备份件(*.bak-*)
- 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
2026-10-10 23:13:22 +08:00

127 lines
3.5 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
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