2011-05-04 5 views
0

J'ai vu des pingers et des recompositions automatiques quand il y a un délai d'attente.fichier batch pour une connexion Internet sporadique

problème: mais j'ai du mal à faire des recherches sur la partie 'compteur ou incrément'.

idée: Heres comment il devrait être:

début pinger continu pendant la connexion à Internet, autrement count (ou accumuler) le temps de la demande jusqu'à ce que 1min ou 60 fois la demande sur, si la connexion est retourné après le temps de la demande sur & moins de '60 fois demander le temps », réinitialiser le « heure de la demande comptoir » à zéro si le temps de demande à 60x atteint: exécuter un autre lot ou composez reconnectent re-up. boucle à une connexion Internet pinger

le plus proche que je l'ai vu: (mais pour une raison son ne fonctionne pas sur mon 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 

source: http://www.computing.net/answers/programming/ping-bat-file/16605.html

crédits à l'affiche originale. merci

+0

Vos exigences en gras sont difficiles à déchiffrer. Le script que vous avez publié ne fait qu'échouer une chaîne et écrit NUL dans un fichier journal. Précisez s'il vous plaît. –

Répondre

0

Il serait bon de savoir pourquoi le script ci-dessus ne fonctionne pas. Parce que peut-être d'autres solutions ne fonctionneront pas. Si vous utilisez une version non anglaise de Windows, vous devez remplacer le texte "Répondre".

Je pense que ce qui suit devrait fonctionner. Il implémente juste le compteur. Mais vous pouvez essayer vous-même comment configurer le compteur pour exécuter le script après 60 secondes.

@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 
Questions connexes