Aqui está minha tentativa.
Eu usei alguns truques deste post: link
echo off
set /a c=1
setlocal ENABLEDELAYEDEXPANSION
FOR /F "tokens=5 delims= " %%I IN (
'netstat -ano ^| find "127.0.0.1:5900" ^| find "CLOSE_WAIT"'
) DO (
set /a c=c+1
set /a last=%%I
)
if %c% geq 10 (
taskkill /PID !last!
)
endlocal
Basicamente, durante o ciclo eu apenas incremento de uma variável. No final, se a contagem for maior que 10, mato a tarefa.
Limitação: isso conta apenas as linhas retornadas pelo netstat
e finds
e usa o último PID contado para o taskkill. Ele assume que todas as linhas são do mesmo PID, mas isso só é verdade em alguns casos (como o seu caso, onde você procura pelo endereço e porta ).