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

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

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

 

はじめに

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

反対に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 timeout /t %INTERVAL% > nul if ERRORLEVEL 1 goto error REM ###################################################### REM 終了処理(PING応答あり) REM ###################################################### echo %HOST%が起動しました goto end REM ###################################################### REM 終了処理(タイムアウト) REM ###################################################### :errortimeout echo %HOST%の起動が確認できませんでした(タイムアウト) :end