シナリオ:開発されたプログラムでは、ダウンロードした証明書を複数のユーザーが同時に使用すると、多くの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本体のステートメントを実行しませんでした。
参考資料: