修改批次檔殺死某個行程

修改批次檔殺死某個行程

我正在尋找一個簡單的批次腳本來終止偵聽某個 ip 和某個連接埠的進程。如果與此進程的連線少於 10 個,則應將其終止。如果已建立的連線超過 10 個,則不應終止該進程。 (它可以計算 -ano 輸出的行數,如果少於 10 行,它應該殺死它)

我目前正在使用類似的腳本,但用於不同的任務:殺死某個進程的批次文件但不應增加它,而應減少連接數,並在該 ip:port 的連接數少於 x 時終止該進程。在這種情況下,連線狀態並不重要,它只需計算連線數即可。

答案1

嘗試這個:

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

相關內容