サーバーを決まった時間にシャットダウンさせる必要があったので,シャットダウンスケジュールを登録するバッチファイルを作成した。
スケジュール登録
シャットダウンコマンドを決まった時間に入力させるためのスケジュールを登録するバッチファイルで,スタートアップに入れて置けばサーバー起動時にSC登録可否を当日の運用状況により判断できる。シャットダウン時間(例:17時20分)は,18行目に5分前の時刻を指定する。(例:17:15)
@rem 定時シャットダウンスケジュール登録
@ECHO OFF
ECHO +---------------------------------------------+
ECHO 本日のシャットダウンスケジュールを登録します。
ECHO +---------------------------------------------+
@rem timeout /t 10 /nobreak
:INPUT_CONF
ECHO +-----------------------------+
ECHO 本日は17時20分に終了しますか。
ECHO ( Y / N )
ECHO +-----------------------------+
SET CONF_SELECT=
SET /P CONF_SELECT=
IF "%CONF_SELECT%"==SET CONF_SELECT=Y
IF /I NOT "%CONF_SELECT%"=="Y" GOTO :INPUT_END
schtasks /create /tn shutdown-once /tr "c:\users\admin\shutdown-sc\5m-down.bat" /sc once /st 17:15 /f
REM schtasks /create /tn shutdown-once /tr "shutdown /s /f /t 300 /d p:0:0" /sc once /st 17:15 /f
ECHO +-------------------------------+
ECHO 17時20分にシャットダウンします。
ECHO +-------------------------------+
PAUSE
EXIT
:INPUT_END
schtasks /delete /tn shutdown-once /f
ECHO +-------------------------------------------------+
ECHO シャットダウンスケジュールは登録されませんでした。
ECHO +-------------------------------------------------+
PAUSE
EXIT
シャットダウン
shutdownコマンド入力バッチファイル
ファイル名:5m-down.bat (保存場所例:c:\users\admin\shutdown-sc\)
上記のスケジュールからシャットダウン5分前に起動させるバッチファイルで,停止5分前警告と2分前警告が表示されて,アプリケーションを強制終了してシャットダウンする。上記SCバッチファイルの18行目に保存場所・ファイル名を指定する。
例:”c:\users\admin\shutdown-sc\5m-down.bat” に変えて直接下記コマンドを指定してもOK
@rem 300秒(5分)後シャットダウン
shutdown /s /f /t 300 /d p:0:0
拡張版
シャットダウン時間指定可能 別途batファイル不要
@rem 定時シャットダウンスケジュール登録 start_shutdown.bat
@ECHO OFF
ECHO +---------------------------------------------+
ECHO 本日のシャットダウンスケジュールを登録します。
ECHO +---------------------------------------------+
@rem timeout /t 10 /nobreak
:INPUT_CONF
ECHO +-----------------------------+
ECHO 本日は17時20分に終了しますか。
ECHO ( Y / N )
ECHO +-----------------------------+
SET CONF_SELECT=
SET /P CONF_SELECT=
IF "%CONF_SELECT%"==SET CONF_SELECT=Y
IF /I NOT "%CONF_SELECT%"=="Y" GOTO :INPUT_PM
schtasks /create /tn shutdown-once /tr "shutdown /s /f /t 300 /d p:0:0" /sc once /st 17:15 /f
ECHO +-------------------------------+
ECHO 17時20分にシャットダウンします。
ECHO +-------------------------------+
timeout /t 5 /nobreak
@rem PAUSE
EXIT
:INPUT_PM
ECHO +-----------------------------+
ECHO 本日は12時00分に終了しますか。
ECHO ( Y / N )
ECHO +-----------------------------+
SET CONF_SELECT=
SET /P CONF_SELECT=
IF "%CONF_SELECT%"==SET CONF_SELECT=Y
IF /I NOT "%CONF_SELECT%"=="Y" GOTO :INPUT_HHMM
schtasks /create /tn shutdown-once /tr "shutdown /s /f /t 300 /d p:0:0" /sc once /st 11:55 /f
ECHO +-------------------------------+
ECHO 12時00分にシャットダウンします。
ECHO +-------------------------------+
timeout /t 5 /nobreak
@rem PAUSE
EXIT
:INPUT_HHMM
ECHO +--------------------------------------+
ECHO シャットダウン時間(-5分)を入力しますか。
ECHO (HH:MM / N )
ECHO +--------------------------------------+
SET CONF_SELECT=
SET /P CONF_SELECT=
IF "%CONF_SELECT%"==SET CONF_SELECT=N
IF /I NOT "%CONF_SELECT%"=="N" GOTO :INPUT_CUSTM
schtasks /delete /tn shutdown-once /f
ECHO +-------------------------------------------------+
ECHO シャットダウンスケジュールは登録されませんでした。
ECHO +-------------------------------------------------+
timeout /t 5 /nobreak
@rem PAUSE
EXIT
:INPUT_CUSTM
schtasks /create /tn shutdown-once /tr "shutdown /s /f /t 300 /d p:0:0" /sc once /st %CONF_SELECT% /f
ECHO +-------------------------------+
ECHO %CONF_SELECT% +5分にシャットダウンします。
ECHO +-------------------------------+
timeout /t 5 /nobreak
@rem PAUSE
EXIT