コマンドプロンプトで時刻付きのpingを行う(バッチファイル利用)


pingを利用していて時刻も併せて表示したくなったので、バッチファイルを作成してみました。

実行

バッチファイルを作成し、そのまま実行するかコマンドプロンプト上で実行できます。

IPアドレスを入力すると、延々とping状況を1秒ごとに出力します。
終了する際はウィンドウの[x]で閉じるかctrl+cで終了してください。

#なお、IPアドレスを入力しない場合、GoogleDNS(8.8.8.8)へ通信します。

バッチファイル

timeping_1line.bat
@echo off
setlocal enabledelayedexpansion

echo ### timeping_1line.bat start ###
set dt=null
set text=null
set res="からの応答 タイム 転送 宛先 見つかり"


SET /P ipaddr="IPアドレスを入力:  "
IF "%ipaddr%"=="" (
    set ipaddr=8.8.8.8
)
echo.


for /l %%I in (0, 0, 0) do (
    FOR /F "delims=," %%i in ('echo !date:~0^,4!/!date:~5^,2!/!date:~8^,2! !time:~0^,2!:!time:~3^,2!:!time:~6^,2!.!time:~9^,2!') DO @SET dt=%%i
    FOR /F "delims=," %%i in ('ping -n 1 %ipaddr% ^|findstr %res%') DO @SET text=%%i
    echo !dt!    !text!
    timeout 1 > nul
)

endlocal

rem EOF

後記

pingコマンドと同じように引数形式にしたり、コマンド間隔をオプション化したり、IPv6対応させたりと修正点は尽きないですが、必要になったら対応しようと思います。

ちなみにpowershellだと以下1行。

timeping
ping -t 127.0.0.1 | %{(Get-Date).ToString() + " $_"}