はじめに
対象ホストに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