batは特定のプロセスの数をチェックし、制限を超えた場合はそれを強制終了します

シナリオ:開発されたプログラムでは、ダウンロードした証明書を複数のユーザーが同時に使用すると、多くのwinword.exeプロセスが生成され(自動的に解放されず、20を超える)、証明書のダウンロードに失敗します。だから私はこの方法を考えました

for /F %%i in ( 'tasklist ^| findstr winword.exe ^| find /c /v "" ') do ( set commitid=%%i)


set  /a limitNum=10
set /a winwordNum=%commitid%

echo %winwordNum%


if "%winwordNum%" gtr "%limitNum%" (
taskkill /f /im winword.exe
)

::winword.exe超过10个,则将其全部杀死
::使用任务计划程序,每隔1分钟调用本bat脚本

踏んだピットの中で:

1.バッチの実行ステートメントの後に結果を割り当てます。変数を操作して変数に割り当てるには、を使用することをお勧めします。

2.タスクリストの後ろの|記号を^ |エスケープに変更する必要があります。そうしないと、構文エラーが報告されます。

3.間違った文法を書いた場合、最後に一時停止を追加しても、ダブルクリックして実行すると点滅します。

4. ifを比較するときは、二重引用符を追加してから、%var%を使用して変数と比較します。以前に変数と純粋な数値を使用した理由がわかりませんでした。また、if本体のステートメントを実行しませんでした。

参考資料:

https://www.cnblogs.com/zndxall/p/9188300.html

おすすめ

転載: blog.csdn.net/Nightwish5/article/details/109193208