はじめに
Windowsのbatファイルを使用して、msedge.exe
のプロセスをキル(強制終了)したいので、taskkill コマンドを用いた以下のようなbatファイルを作成した。
@echo off taskkill /F /IM msedge.exe exit /b 0
このコードでは、msedge.exe
のプロセスが存在すれば強制終了し、バッチファイルは正常終了する。しかし、プロセスが存在しない場合、エラーが発生することがある。
バッチファイルの改修
taskkill
コマンドを使用してプロセスをキルする際に、対象のプロセスが存在しないと、エラーが発生する。
この場合、エラーを無視しても動作には大きな影響はないが、今後他のプログラムに組み込むことを考えると、エラーハンドリングを実装しておくと安心である。
改修後のバッチファイル
以下のようにバッチファイルを改修することで、msedge.exe
のプロセスが存在しなくても、エラーハンドリングによって処理を正常に終了させることができる。
@echo off taskkill /F /IM msedge.exe >nul 2>&1 if %ERRORLEVEL% NEQ 0 ( rem プロセスが見つからない場合、エラーメッセージを表示 echo プロセスが見つかりませんでした。 ) exit /b 0
このスクリプトでは、taskkill
コマンドの出力を nul
にリダイレクトすることで、標準出力や標準エラー出力のメッセージを非表示にしている。
そして、%ERRORLEVEL%
を確認し、プロセスが見つからなかった場合にはエラーメッセージを表示しつつ、バッチファイルを正常に終了させるようにしている。
まとめ
このバッチファイル改修により、msedge.exe
のプロセスが存在しない場合でもエラーを適切に処理し、スクリプトを正常終了させることが可能になる。
エラーハンドリングを実装しておくことで、より信頼性の高いバッチファイルを作成できる。