Я сделал небольшое меню терминала, где я могу запустить несколько команд терминала в новом cmd.
Вот очень сжатый пример:
SET /P env=your conda env:
...
ECHO 2 - Run Rasa Action Server
...
IF %M%==2 GOTO RUN_RASA_ACTION_SERVER
...
:RUN_RASA_ACTION_SERVER
start cmd.exe /k call conda activate %env% ^&^& cd.. ^&^& call rasa run actions
CLS
GOTO MENU
В этой части я запускаю сервер действий, работающий на порту 5055, в новом терминале cmd. Я также хочу убить задачу через меню терминала.
так вот что я получил до сих пор:
...
ECHO 6 - Kill Rasa Action Server
...
IF %M%==6 GOTO KILL_RASA_ACTION_SERVER
...
:KILL_RASA_ACTION_SERVER
FOR /F "tokens=5" %%T IN ('netstat -a -n -o ^| findstr "5055" ') DO (
SET /A ProcessId=%%T) &GOTO SkipLine
:SkipLine
taskkill /f /pid %ProcessId%
CLS
GOTO MENU
Это работает нормально, НО ... ранее открытый терминал все еще открыт, я хочу убить задачу и закрытьтерминал CMD после этого.
Как мне этого добиться? Я попробовал EXIT
, но я всегда закрываю главное меню терминала.