【问题标题】:How to query netstat to find PID for specific local address in Windows 7?如何在 Windows 7 中查询 netstat 以查找特定本地地址的 PID?
【发布时间】:2014-07-09 10:28:46
【问题描述】:

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

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

我想创建可以找到 PID 并在调用taskkill /F /PID <found pid> 中应用它的 Windows 批处理文件

如何创建这样的批处理文件?

谢谢!

【问题讨论】:

    标签: windows batch-file netstat


    【解决方案1】:

    在我的电脑上可能有 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
    

    【讨论】:

      【解决方案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)并终止任务

      【讨论】:

        猜你喜欢
        • 2013-08-19
        • 2011-02-02
        • 2015-10-07
        • 2017-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-15
        • 2016-01-21
        相关资源
        最近更新 更多