BatchでEdgeを 安全にkillする方法:エラー処理の実装


はじめに

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 のプロセスが存在しない場合でもエラーを適切に処理し、スクリプトを正常終了させることが可能になる。
エラーハンドリングを実装しておくことで、より信頼性の高いバッチファイルを作成できる。