bat 结束指定端口进程

下面的脚本接受输入的端口号,使用netstat -aon | findstr :%port%查找该端口的 PID,之后使用taskkill /T /F /PID <PID>结束该 PID 对应进程(及其子进程)。

@echo off
setlocal

set /p port="input port to kill: "

echo Stopping program running on port %port%...

for /f "tokens=5" %%a in ('netstat -aon ^| findstr :%port%') do (
    taskkill /T /F /PID %%a
    echo Program running on port %port% has been stopped.
    goto done
)

echo No program running on port %port%.

:done

pause

"tokens=5"参数告诉 for 命令只提取每行输出的第 5 个字段(即 PID 字段)。

^|中的^为转义符。

goto done实现只获取第一行输出的 PID(按第一行输出的 PID 结束进程)。

参考:ChatGPT

posted @ 2023-08-24 20:10  Higurashi-kagome  阅读(37)  评论(0编辑  收藏  举报