MR2オーナー吉田貴幸のブログ

MR2(SW20)オーナー吉田貴幸のブログ。仕事はITインフラエンジニア。愛車の記事とIT関連の情報を発信しています

【Windows】[バッチ] ping応答がなくなるまで待機する

 

はじめに

対象ホストにpingを打って、応答がなくなるのを待つバッチです。リモートからOS再起動を行いOS終了を待ってから、さらにバッチを実行したい場合などで活用してください。

また、リモートでOS再起動指示→「OS停止待ち.bat」→「OS起動待ち.bat」 と実行することで、バッチファイル上でOS再起動を待つで使えます。

【Windows】バッチで ping応答があるまで待機する OS起動待ち.bat | システム管理者向け - MR2オーナー吉田貴幸のブログ

 

バッチファイル(OS停止待ち.bat) 

  • OS停止待ち.bat

変数「HOST」に対象ホストのIPアドレス/ホスト名を入れてください。または%1で引数化すれば、共通化して使えると思います。

INTERVALとTIMEOUTCOUNTは、ご利用の環境に合わせて変更ください。

@echo off
REM ######################################################
REM OS停止待ちバッチ
REM PING応答がなくなるまでループ
REM 5秒×100回でタイムアウト
REM ######################################################

set COUNT=0
set TIMEOUTCOUNT=100
set INTERVAL=5
set HOST=127.0.0.1

REM ######################################################
REM メイン処理
REM PING結果で"ms TTL="がなかったら終了する REM ###################################################### :error set /a COUNT=COUNT+1 echo %HOST%の停止を待っています....%COUNT% if "%COUNT%" == "%TIMEOUTCOUNT%" goto errortimeout ping -n 1 %HOST% | find "ms TTL=" > NUL if ERRORLEVEL 1 goto notrespond timeout /t %INTERVAL% > nul goto error REM ###################################################### REM 終了処理(PING応答なし) REM ###################################################### :notrespond echo %HOST%が停止しました goto end REM ###################################################### REM 終了処理(タイムアウト) REM ###################################################### :errortimeout echo %HOST%の停止が確認できませんでした(タイムアウト) :end