Lire le contenu d un ping pour extraire un resultat
fredef
-
barnabe0057 -
barnabe0057 -
Bonjour,
je cherche a realiser un script qui me permetrait d effectuer des pings avec un retour d'erreur sur plusieurs equipements.
Jusque la pas de soucis, j ai utilise la variable %ERRORLEVEL%. Mais le probleme c'est que si l'equipement est "unreachable " j ai quand meme un retour OK.
voice un exemple de ce que j ai fait a titre d exemple :
---------------------------------------------------------------------------------------------------------------
@Echo off
Rem -----------------------------------
:: nommage etiquette
:debut
Rem -----------------------------------
:: Affiche le nom de la fenetre désiré
echo.
echo *************************************
ECHO ***** Connectivity testing *****
echo *************************************
echo.
Rem -----------------------------------
:: Ont Ping google pendant 3 secondes
PING 8.8.8.8 -n 3 > NUL
Rem -----------------------------------
:: Si errorlevel vaut 0 alors tout est OK
IF %ERRORLEVEL% == 0 (
ECHO Site - google
ECHO STATUS [OK]
)
Rem -----------------------------------
:: Si errorlevel vaut 1 alors tout est NUL
IF %ERRORLEVEL% == 1 (
ECHO Site - google
ECHO STATUS [NUL]
)
echo.
ping 8.8.4.4
Rem -----------------------------------
:: reprend le script
goto debut
-------------------------------------------------------------------------------------------------------------------------
du coup mon idee serait de faire :
ping > ecrire dans un fichier
lire fichier : Si "lost n est pas egale a 0" ou si "unreachable" echo NUL sinon echo OK
je n ai pas le skill pour faire ca, je ne sais meme pas si c'est faisable d analyser le contenu d un texte en batch ?
Par avance merci pour vos retours et aide eventuelles
je cherche a realiser un script qui me permetrait d effectuer des pings avec un retour d'erreur sur plusieurs equipements.
Jusque la pas de soucis, j ai utilise la variable %ERRORLEVEL%. Mais le probleme c'est que si l'equipement est "unreachable " j ai quand meme un retour OK.
voice un exemple de ce que j ai fait a titre d exemple :
---------------------------------------------------------------------------------------------------------------
@Echo off
Rem -----------------------------------
:: nommage etiquette
:debut
Rem -----------------------------------
:: Affiche le nom de la fenetre désiré
echo.
echo *************************************
ECHO ***** Connectivity testing *****
echo *************************************
echo.
Rem -----------------------------------
:: Ont Ping google pendant 3 secondes
PING 8.8.8.8 -n 3 > NUL
Rem -----------------------------------
:: Si errorlevel vaut 0 alors tout est OK
IF %ERRORLEVEL% == 0 (
ECHO Site - google
ECHO STATUS [OK]
)
Rem -----------------------------------
:: Si errorlevel vaut 1 alors tout est NUL
IF %ERRORLEVEL% == 1 (
ECHO Site - google
ECHO STATUS [NUL]
)
echo.
ping 8.8.4.4
Rem -----------------------------------
:: reprend le script
goto debut
-------------------------------------------------------------------------------------------------------------------------
du coup mon idee serait de faire :
ping > ecrire dans un fichier
lire fichier : Si "lost n est pas egale a 0" ou si "unreachable" echo NUL sinon echo OK
je n ai pas le skill pour faire ca, je ne sais meme pas si c'est faisable d analyser le contenu d un texte en batch ?
Par avance merci pour vos retours et aide eventuelles
A voir également:
- Lire le contenu d un ping pour extraire un resultat
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire un fichier epub - Guide
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Comment lire un message supprimé sur whatsapp - Guide
3 réponses
Bonjour,
Voilà ce que ça pourrait donner :
Voilà ce que ça pourrait donner :
@echo off
setlocal enableextensions enabledelayedexpansion
chcp 28591 >nul
set log=temp123.txt
Rem -----------------------------------
:: Affiche le nom de la fenetre désiré
Title NU CONNECTION
echo.
echo *************************************
echo ***** Connectivity testing *****
echo *************************************
echo.
Rem -----------------------------------
:: On Ping google pendant 3 secondes
ping 8.8.8.8 -n 3 > %log%
(findstr /C:"Request timed out" /C:"Destination host unreachable" /C:"Transmit failed" %log%) && (echo Ping NUL & timeout /t 10 & exit)
for /f "tokens=4 delims==(" %%A in ('type %log% ^| find "%%"') do (
set perdus=%%A
set perdus=!perdus: =!
if !perdus! NEQ 0 (echo Ping NUL) else (echo Ping OK)
)
pause
exit
super merci.
Je vais essayer ca.
afin de ne juste pas prendre la solution brut as tu moyen de m expliquer vite fait :
setlocal enableextensions enabledelayedexpansion
chcp 28591 >nul
(findstr /C:"Request timed out" /C:"Destination host unreachable" /C:"Transmit failed" %log%) && (echo Ping NUL & timeout /t 10 & exit)
merci
Je vais essayer ca.
afin de ne juste pas prendre la solution brut as tu moyen de m expliquer vite fait :
setlocal enableextensions enabledelayedexpansion
chcp 28591 >nul
(findstr /C:"Request timed out" /C:"Destination host unreachable" /C:"Transmit failed" %log%) && (echo Ping NUL & timeout /t 10 & exit)
merci
FINDSTR sert à rechercher du texte.
&& teste la réussite de la commande (teste si ERRORLEVEL vaut 0)
CHCP change le codepage, utile pour prendre en compte les noms avec accents
setlocal enableextensions active les extensions, normalement déjà activé par défaut
setlocal enabledelayedexpansion indispensable quand tu dois retarder l'expansion de certaines variables (par exemple !perdus!)
&& teste la réussite de la commande (teste si ERRORLEVEL vaut 0)
CHCP change le codepage, utile pour prendre en compte les noms avec accents
setlocal enableextensions active les extensions, normalement déjà activé par défaut
setlocal enabledelayedexpansion indispensable quand tu dois retarder l'expansion de certaines variables (par exemple !perdus!)
merci encore !
question bonus : j utilisais dans ma version test l outil batbox.exe me permettant un jeu de couleur.
Mais celui ci en terme de securite ne me parait pas forcement fiable car je ne peux dechiffrer le contenu...
il y a t il une solution pour faire apparaitre OK et NUL en vert et rouge ?
question bonus : j utilisais dans ma version test l outil batbox.exe me permettant un jeu de couleur.
Mais celui ci en terme de securite ne me parait pas forcement fiable car je ne peux dechiffrer le contenu...
il y a t il une solution pour faire apparaitre OK et NUL en vert et rouge ?