如何查询netstat在Windows 7中查找特定本地地址的PID?

时间:2014-07-09 10:28:46

标签: windows batch-file netstat

我经常在本地地址[::]:8080上启动服务器。要终止服务器,我需要从PID获取netstat -aon

要终止此服务器,请执行taskkill /F /PID <found pid>

我想创建可以找到PID并在调用taskkill /F /PID <found pid>

中应用它的Windows批处理文件

如何创建此类批处理文件?

谢谢!

2 个答案:

答案 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列)并终止任务