0

リクエストがタイムアウトすると、ピンガーと自動リダイヤルが表示されます。

問題:しかし、「カウンターまたはインクリメント」の部分を調査するのに苦労しています。

アイデア:これがどうあるべきか:

インターネットに接続している間、継続的にpingを開始します。それ以外の場合は、1分または60リクエストタイムアウトまでリクエストタイムアウトをカウント(または累積)します。リクエストタイムアウト後に接続が戻って「リクエストタイムアウトの60回未満」の場合は、「リクエストタイムアウト」をリセットします。要求のタイムアウトが60倍に達した場合は、カウンターをゼロにします。別のバッチを実行するか、再接続して再ダイヤルします。インターネット接続へのループping

私が見た最も近いもの:(しかし、何らかの理由でそれは私のxpで機能していません)

@echo off
setLocal EnableDelayedExpansion

:loop

ping -n 2 10.174.10.48 >> log
find /i "Reply" < log > nul
if not errorlevel 1 type nul > log & goto :loop

for /f "tokens=1" %%a in ('find /c /i "Request timed out" ^< log') do (
if %%a geq 10 echo file.exe && type nul > log
)
goto :loop

ソース: http: //www.computing.net/answers/programming/ping-bat-file/16605.html

元のポスターへのクレジット。ありがとうございました

4

1 に答える 1

0

上記のスクリプトが機能しない理由を知っておくとよいでしょう。他のソリューションも機能しない可能性があるためです。英語以外のバージョンの Windows を使用している場合は、「Reply」というテキストを置き換える必要があります。

以下がうまくいくはずだと思います。カウンターを実装するだけです。ただし、60 秒後にスクリプトを実行するためにカウンターを設定する必要がある方法を自分で試すことができます。

@echo off

:reset
set count=0
:loop

ping -n 2 10.174.10.48 | find /i "Reply"  
if not errorlevel 1 goto :reset

set /A count=%count%+1
if %count% lss 100 got :loop

call reconnect

goto :reset
于 2011-05-04T20:51:20.197 に答える