解析 Windows 命令行输出以获取 PID

use*_*799 4 command-line command netstat pid window

我希望仅收集运行此 netstat 命令时输出的 PID 值:

netstat -a -o -n -p tcp | findstr -i "CLOSE_WAIT"
Run Code Online (Sandbox Code Playgroud)

我的目的是使用 PID 并创建一个脚本,该脚本将运行taskkill /PID pidfoundhere以删除任何具有 CLOSE_WAIT 状态的套接字。

MC *_* ND 5

@echo off
    for /f "tokens=5" %%a in ('
        netstat -noa -p tcp ^| find /i "CLOSE_WAIT"
    ') do if not "%%a"=="0" echo taskkill /pid %%a
Run Code Online (Sandbox Code Playgroud)

使用for命令以空格作为分隔符来分割行,获取行中的第 5 个标记,如果有 PID,则终止进程

命令taskkill仅回显到控制台。如果输出正确,则删除该echo命令