Estou procurando um script em lote simples que elimine um processo que escuta um determinado IP e uma determinada porta. Se houver menos de 10 conexões para esse processo, ele deverá ser eliminado. Se houver mais de 10 conexões estabelecidas, o processo não deverá ser eliminado. (ele pode contar o número de linhas da saída -ano e se houver menos de 10 linhas ele deve eliminá-lo)
Atualmente estou usando um script semelhante, mas para uma tarefa diferente:Arquivo em lote que mata um determinado processomas em vez de aumentar, deve diminuir o número de conexões e encerrar o processo se houver menos de x conexões para esse ip: porta. O estado da conexão neste caso não importa, basta contar apenas o número de conexões.
Responder1
Experimente isto:
echo off
set /a c=1
setlocal ENABLEDELAYEDEXPANSION
FOR /F "tokens=5 delims= " %%I IN (
'netstat -ano ^| find "127.0.0.1:5900"'
) DO (
set /a c=c+1
set /a last=%%I
)
if %c% lss 10 (
taskkill /PID !last!
)
endlocal