windows
アイキャッチ 猫

以前、スタートアップの機能を使って、Windows10を起動するときに自動でログインする方法やスタートアップで自動に実行する方法をご紹介しました。
詳しくは、こちらをご覧ください。


今回はシャットダウンの時にバッチやプログラムを実行する方法をご紹介します。

  • バッチファイルにシャットダウンのコマンドを設定
  • ローカルグループポリシーで設定
  • タスクスケジューラで設定

こちらの3つの方法をご紹介しますので、今回は3本立ての記事になります。
今回はバッチファイルでのシャットダウンコマンドの設定についてご紹介します。

バッチファイルにシャットダウンのコマンドを設定

今回の方法ではシャットダウン前に行いたい処理をバッチファイル記述し、最後にshutdownのコマンドを入れることで処理が終わり次第、自動的にシャットダウンをしてくれます。

こちらがシャットダウンのコマンド例です。

処理 コマンド 説明
シャットダウン shutdown /s /f /t 0 確認なしで実行中のアプリケーションを強制終了してシャットダウンを実行
再起動 shutdown /r /f /t 0 確認なしで実行中のアプリケーションを強制終了して再起動を実行
ログオフ・サインアウト shutdown /l /f /t 0 確認なしで実行中のアプリケーションを強制終了してログオフ・サインアウトを実行

でてきたshutdownコマンドのオプションについてです。

オプション 説明
/l ログオフ
/s シャットダウン
/r 再起動
/t 10 10秒後にシャットダウン(10は例)
すぐにシャットダウンしたい場合は0を設定
/f アプリケーションを強制終了

バッチをデスクトップなどすぐ操作できる場所に置いておけば、手間なく実行できるところが良いですね!

注意する点

ヒューマンエラーなだけなのですが、バッチの機能だけ使いたくて間違ってシャットダウン込みのバッチを叩かないようにしましょう。

PCがシャットダウンしてしまいます。(苦笑)
…はい。当たり前ですね。

筆者は始め、この方法でバッチを叩いてシャットダウンしていたのですが、間違ってシャットダウンしてしまうことがしばしばありました。
そのため、最初にシャットダウンするかどうかを確認するコマンドを入れることにしました。
(完全自動では無くなりましたが、ミスが多くなるよりかはマシだと思います。)

こちらは例ですが、もしよければ参考にしてください。

@ECHO OFF

REM 入力値でシャットダウンするかどうか決める
@ECHO 処理完了後、シャットダウンしますか?
@ECHO ( Y / N )
SET INPUT=
SET /P INPUT=

IF "%INPUT%"=="y" ( 
	GOTO :SHUT_DOWN_ON
) ELSE IF "%INPUT%"=="n" ( 
	GOTO :SHUT_DOWN_OFF
)

REM //////////////////////////////////////////////////////////
REM ここにシャットダウン前に行いたい処理を組み込むか呼び出す
REM //////////////////////////////////////////////////////////

:SHUT_DOWN_ON
@ECHO シャットダウンコマンドを入力します。
EXIT 0

:SHUT_DOWN_OFF
@ECHO 何か処理が必要であれば、入れてください。
EXIT 0

利点と欠点

利点:
実行に制約がないためどなたでも実行が可能
・自分で好きにさまざまな制御が可能

弱点:
・バッチを直接記述しなくてはならないため、バグっていると繰り返し修正が必要

まとめ

いかがでしたでしょうか。
バッチファイルの最後にshutdownコマンドを記述する方法をご紹介しました。

今回の方法では制約がありませんので、バッチが得意な方、勉強したい方には特におすすめです。良かったら試してみてくださいね!