Windows上で動作するアプリケーションが定期的に不安定になる、または定期的な再起動が必要な場面では、バッチファイルを使って自動で再起動させる仕組みが便利です。本記事では、指定したアプリケーションを一定時間ごとに自動で再起動するバッチスクリプトの作成方法を解説します。
アプリを定期的に再起動する用途とは?
例えば以下のようなケースで活用できます。
- メモリリークのある業務アプリを定時で再起動したい
- 開発中のアプリを自動で落として再実行したい
- 動画キャプチャソフトなどを録画単位でリセットしたい
バッチファイルを使えば、簡単に定期再起動の自動化が可能です。
スクリプトの基本構成
以下は、アプリケーションを一定時間(例えば30分)ごとに自動で再起動するバッチファイルの例です。
@echo off
:loop
REM アプリケーションを強制終了
taskkill /im notepad.exe /f
REM 数秒待機(アプリ完全終了待ち)
timeout /t 5 /nobreak > nul
REM アプリケーションを再起動
start "" "C:\Windows\System32\notepad.exe"
REM 30分待機(次の再起動まで)
timeout /t 1800 /nobreak > nul
REM 繰り返し
goto loop
各コマンドの解説
taskkill /im [実行ファイル名] /f
指定されたアプリケーションを強制終了します。/imはイメージ名(例: notepad.exe)、/fは強制終了のフラグです。
timeout /t [秒数] /nobreak
指定秒数だけ待機します。/nobreakを指定すると、キー入力によるスキップを防止できます。
start “” “[パス]”
ダブルクォートの1つ目はウィンドウタイトル(空欄指定)、2つ目が実行ファイルのパスです。
goto loop
スクリプトの先頭(:loop)にジャンプして処理を繰り返します。
対象アプリを変更するには?
上記例では「メモ帳(notepad.exe)」を対象としていますが、任意のアプリに変更するには以下の2箇所を編集します。
- taskkill の /im に対象アプリの実行ファイル名を指定
- start のパスを対象アプリの実行ファイルに変更
たとえば、Google Chromeを対象にする場合は以下のように書き換えます。
taskkill /im chrome.exe /f
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe"
バッチファイルの自動起動設定
このスクリプトをWindows起動時に自動実行させたい場合は、以下の手順でスタートアップに登録できます。
- バッチファイルを任意の場所に保存(例:restart_app.bat)
- Win + R → shell:startup と入力
- 表示されたフォルダにショートカットを配置
注意点と補足
- アプリの起動に管理者権限が必要な場合、バッチファイル自体を管理者として実行する必要があります。
- taskkillで強制終了するため、未保存のデータは失われます。注意して運用してください。
- timeoutで待機している間は、スクリプトはバックグラウンドで動作し続けます。
まとめ
バッチファイルを活用することで、定期的にアプリケーションを再起動する処理を自動化できます。シンプルなスクリプトでも、業務効率化や安定運用に大きく貢献する場合があります。ぜひ、自分の環境に合わせてカスタマイズして活用してみてください。