![特定のプロセスを強制終了する修正されたバッチファイル](https://rvso.com/image/652708/%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%92%E5%BC%B7%E5%88%B6%E7%B5%82%E4%BA%86%E3%81%99%E3%82%8B%E4%BF%AE%E6%AD%A3%E3%81%95%E3%82%8C%E3%81%9F%E3%83%90%E3%83%83%E3%83%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.png)
特定の IP と特定のポートをリッスンするプロセスを強制終了する簡単なバッチ スクリプトを探しています。このプロセスへの接続が 10 未満の場合、プロセスは強制終了する必要があります。確立された接続が 10 を超える場合、プロセスは強制終了されません。(-ano 出力から行数をカウントし、行数が 10 未満の場合、プロセスは強制終了する必要があります)
現在、私は同様のスクリプトを別のタスクに使用しています:特定のプロセスを強制終了するバッチファイルただし、接続数を増やすのではなく減らし、その IP:ポートへの接続が 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