PR

【Windows10】シャットダウン時にバッチやプログラムを実行してから終了する方法(1)

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 1010秒後にシャットダウン(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コマンドを記述する方法をご紹介しました。

今回の方法では制約がありませんので、バッチが得意な方、勉強したい方には特におすすめです。

また本シリーズは以下の3本立てなので、良かったら見てくださいね♪
(1)「バッチファイルにシャットダウンのコマンドを設定」する方法(本記事)
(2)「ローカルグループポリシーで設定」する方法

(3)「タスクスケジューラーで設定」する方法

タイトルとURLをコピーしました