![修改批次檔殺死某個行程](https://rvso.com/image/652708/%E4%BF%AE%E6%94%B9%E6%89%B9%E6%AC%A1%E6%AA%94%E6%AE%BA%E6%AD%BB%E6%9F%90%E5%80%8B%E8%A1%8C%E7%A8%8B.png)
我正在尋找一個簡單的批次腳本來終止偵聽某個 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