我经常在本地地址[::]:8080
上启动服务器。要终止服务器,我需要从PID
获取netstat -aon
。
要终止此服务器,请执行taskkill /F /PID <found pid>
我想创建可以找到PID并在调用taskkill /F /PID <found pid>
如何创建此类批处理文件?
谢谢!
答案 0 :(得分:6)
在我的电脑上可能有UDP或TCP连接,它们需要稍微不同的代码:
测试此以查看其中一个taskkill命令是否正确并删除echo
以启用taskkill命令。
@echo off
for /f "tokens=5" %%a in ('netstat -aon ^|find " [::]:8080 " ^|find /i " TCP " ') do echo taskkill /F /PID %%a
for /f "tokens=4" %%a in ('netstat -aon ^|find " [::]:8080 " ^|find /i " UDP " ') do echo taskkill /F /PID %%a
答案 1 :(得分:2)
@echo off
setlocal enableextensions
set "port=8080"
for /f "tokens=1,4,5" %%a in (
'netstat -aon ^| findstr /r /c:"[TU][CD]P[^[]*\[::\]:%port%"'
) do if "%%a"=="UDP" (taskkill /F /PID %%b) else (taskkill /f /PID %%c)
endlocal
使用findstr
仅检索所需记录,使用for
命令对其进行标记以获取PID列(UDP为第4列,TCP为第5列)并终止任务