::http://yaonobibouroku.blogspot.com/p/pingff14bpsms-ping1-5-1-ping-ping-ping.html @echo off title RDP先のping監視 :: 一條作成 15:27 2022/12/10 ::回線速度bpsではなく、応答時間で判断する。 ::pingを確認するだけなのでFF14などのゲーム以外でも使用可能 :: 95行目付近の正常メッセージ「快適です」はrem で非表示にしている ::***********************設定************************** ::ワールドがあるサーバのIPアドレス(デフォルト:FF14のGaiaサーバ) set WORLD=124.150.157.157 ::1周期あたりの時間はループ待ち時間とping回数の合計 ::ループの待ち時間(デフォルト:55秒) set WAITTIME=1 ::1ループで実行するpingの回数(デフォルト:5回) set PINGTIMES=1 ::pingの応答待ち時間(デフォルト:300ms)一條追加 set PINGWAIT=300 ::しきい値設定(ms) set EXCELLENT=10 set GOOD=20 set NORMAL=50 set BAD=100 ::ログ作成の有無(0は作成しない。1は作成する)ログの保存場所はこのファイルと同じ場所 set LOGGING=0 ::FINE値より悪化で警告音を鳴らす。(0は鳴らさない。1は鳴らす。) set BEEP=0 ::回線が死んでいる場合は設定によらず警告音がなります。 ::一時ファイルの保存場所 set TEMPDIR=c:\temp ::***************************************************** mkdir %TEMPDIR% > NUL 2>&1 set /A SKIP=%PINGTIMES%+6 set AVERAGEPING=0 if not %LOGGING%==0 ( if not %LOGGING%==1 ( echo ログ作成の設定が不正です。 pause exit /B ) ) if not %BEEP%==0 ( if not %BEEP%==1 ( echo ビープ音の設定が不正です。 pause exit /B ) ) ::ログファイルと画面の初期化 if %LOGGING%==1 ( if not exist ping_daily.txt (echo 日付,時間,最小,最大,平均 > ping_daily.txt) ) echo ************RDP接続先の監視************ echo 日付 時間 平均 状態 echo ------------------------------------ ::以下無勉ループ :loop ping -n %PINGTIMES% -w %PINGWAIT% %WORLD% > %TEMPDIR%\\pinglog.txt @if errorlevel 1 GOTO NG @if errorlevel 0 GOTO OK :NG echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% 回線が死にました。。。Beep音「 」 rem rundll32 user32.dll,MessageBeep timeout %WAITTIME% > NUL goto loop :OK if %LOGGING%==1 ( for /F "eol=; skip=%SKIP% tokens=3,6,9 delims=m " %%i in (%TEMPDIR%\\pinglog.txt) do ( @echo %DATE%,%time:~0,2%:%time:~3,2%:%time:~6,2%,%%i,%%j,%%k >> ping_daily.txt set /a AVERAGEPING=%%k ) ) if %LOGGING%==0 ( for /F "eol=; skip=%SKIP% tokens=3,6,9 delims=m " %%i in (%TEMPDIR%\\pinglog.txt) do ( set /a AVERAGEPING=%%k ) ) rem if %AVERAGEPING% lss %EXCELLENT% echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %AVERAGEPING%ms とても快適です。 rem if %AVERAGEPING% geq %EXCELLENT% if %AVERAGEPING% lss %GOOD% echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %AVERAGEPING%ms 快適です。 rem if %AVERAGEPING% geq %GOOD% if %AVERAGEPING% lss %NORMAL% echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %AVERAGEPING%ms 普通です。 if %BEEP%==0 ( if %AVERAGEPING% geq %NORMAL% if %AVERAGEPING% lss %BAD% echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %AVERAGEPING%ms 厳しいです。 if %AVERAGEPING% geq %BAD% echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %AVERAGEPING%ms もうむりぽ。 ) if %BEEP%==1 ( if %AVERAGEPING% geq %NORMAL% if %AVERAGEPING% lss %BAD% ( echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %AVERAGEPING%ms 厳しいです。 rem rundll32 user32.dll,MessageBeep ) if %AVERAGEPING% geq %BAD% ( echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %AVERAGEPING%ms もうむりぽ。 rem rundll32 user32.dll,MessageBeep ) ) timeout %WAITTIME% > NUL goto loop