[BATCH] fichier de ping a optimiser
christboy
Messages postés
157
Statut
Membre
-
christboy Messages postés 157 Statut Membre -
christboy Messages postés 157 Statut Membre -
bonjour,
en farfouillant sur le net j'ai reussi a faire ce fichier batch (voir ci-dessous) mais un fichier temporaire est creer et j'aimerai éviter cela car un fichier qui ne sert que lorsque l'application tourne n'est pas très utile.
en farfouillant sur le net j'ai reussi a faire ce fichier batch (voir ci-dessous) mais un fichier temporaire est creer et j'aimerai éviter cela car un fichier qui ne sert que lorsque l'application tourne n'est pas très utile.
ECHO OFF
cls
REM *********************************************************
REM ** Test de ping sur une liste de machines ***
REM ** ***
REM *********************************************************
set /p nombre_reseau_to_scan="nombre de reseau a scanner : "
REM *************************************************
REM *** Création du nom des fichier de destination ***
REM *************************************************
set heure=%time:~0,8%
set fichier_temporaire="temp.txt"
set nom_fichier_ok="reponses_ok [%date:/=-%] [%heure::=.%].txt"
set nom_fichier_no="reponses_no [%date:/=-%] [%heure::=.%].txt"
set /a nombre_reponses_ok=0
set /a nombre_reponses_no=0
REM *************************************
REM *** Création du fichier d'adresse ***
REM *************************************
echo.> %fichier_temporaire%
set /a nb_to_ping=0
:MASTER
set /p debut_addr="saisir l'adrresse reseau (ex:192.168.0.0): "
set fin_addr=255
set /a nb_to_ping=nb_to_ping+255-debut_addr:~0,-2
set /a compteur_addr=0
echo Cr‚ation du fichier temporaire ...
echo %debut_addr:~0,-2%.%compteur_addr% >> %fichier_temporaire%
:Boucle
set /a compteur_addr=compteur_addr+1
echo %debut_addr:~0,-2%.%compteur_addr% >> %fichier_temporaire%
IF not %compteur_addr%==%fin_addr% GOTO BOUCLE
set /a nombre_reseau_to_scan=nombre_reseau_to_scan-1
IF not %nombre_reseau_to_scan%==0 GOTO MASTER
REM ***********************************************
REM *** Initialisation des fichiers de stockage ***
REM ***********************************************
echo ********************************************** >> %nom_fichier_ok%
echo ** *** >> %nom_fichier_ok%
echo ** Fichier de reponses positives au ping *** >> %nom_fichier_ok%
echo ** *** >> %nom_fichier_ok%
echo ********************************************** >> %nom_fichier_ok%
echo. >> %nom_fichier_ok%
echo ********************************************** >> %nom_fichier_no%
echo ** *** >> %nom_fichier_no%
echo ** Fichier de reponses positives au ping *** >> %nom_fichier_no%
echo ** *** >> %nom_fichier_no%
echo ********************************************** >> %nom_fichier_no%
echo. >> %nom_fichier_no%
REM ****************************************************************
REM *** Lecture du nom des machines dans le %fichier_temporaire% ***
REM ****************************************************************
ECHO *********** Debut des pings ***********
FOR /F %%i IN (temp.txt) Do call :INSTALLATION %%i
REM FOR /F %%i IN (%i) Do call :INSTALLATION %%i
ECHO *********** Fin des pings ***********
echo.
set /a nombre_reponses=nombre_reponses_ok+nombre_reponses_no
echo *** %nombre_reponses% reponse sur un total de %nb_to_ping% adresses
echo *** %nombre_reponses_ok% reponses positives
echo *** %nombre_reponses_no% reponses negatives
DEL /F /Q %fichier_temporaire%
echo. >> %nom_fichier_ok%
echo. >> %nom_fichier_no%
ECHO *********** Fin des pings *********** >> %nom_fichier_ok%
ECHO *********** Fin des pings *********** >> %nom_fichier_no%
echo *** %nombre_reponses% reponse sur un total de %nb_to_ping% adresses >> %nom_fichier_ok%
echo *** %nombre_reponses% reponse sur un total de %nb_to_ping% adresses >> %nom_fichier_no%
echo *** %nombre_reponses_ok% reponses positives >> %nom_fichier_ok%
echo *** %nombre_reponses_no% reponses negatives >> %nom_fichier_no%
ATTRIB +R %nom_fichier_ok%
ATTRIB +R %nom_fichier_no%
PAUSE
GOTO FIN
:INSTALLATION
SET Machine=%1
SET Compteur=0
REM *************************************
REM *** Execution de la commande ping ***
REM *************************************
FOR /F "tokens=1" %%i IN ('ping %Machine% -n 1') DO call :TestPing %%i
GOTO TestPingSuite
REM Teste si les mot Réponse et Hôte sont contenu dans les lignes générées par la commande ping comme premier mot.
REM Si oui, alors on incremente le compteur Compteur
:TestPing
set ChainePing=%1
IF %ChainePing%Chaine==D‚laiChaine set /a Compteur=%Compteur%+1
IF %ChainePing%Chaine==H“teChaine set /a Compteur=%Compteur%+1
GOTO FIN
REM A la fin du for /F on entre dans ce test. Si le compteur est toujours à 0 c'est qu aucune
REM ligne générée par le ping ne contenait les mots Hôte et Délai comme premier mot.
:TestPingSuite
if %Compteur%==0 GOTO PingOK
GOTO NoPing
REM ************************
REM *** Procedure NoPing ***
REM ************************
:NoPing
REM ****** Il y a eu un probleme sur le ping de la machine %Machine
set /a nombre_reponses_no=nombre_reponses_no+1
ECHO *** Ping ERROR sur %Machine%
ECHO *** Ping ERROR sur %Machine% >> %nom_fichier_no%
GOTO FIN
REM ************************
REM *** Procedure PingOK ***
REM ************************
:PingOK
REM ****** PingOK sur la machine %Machine%
set /a nombre_reponses_ok=nombre_reponses_ok+1
ECHO *** Ping OK sur %Machine%
ECHO *** Ping OK sur %Machine% >> %nom_fichier_ok%
GOTO FIN
:FIN
A voir également:
- [BATCH] fichier de ping a optimiser
- Optimiser son pc - Accueil - Utilitaires
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier batch - Guide
- Fichier rar - Guide
1 réponse
oups une erreur de copier coller, j'ai pris un fichier qui n'était pas finit, prenez plutot celui la
ECHO OFF
cls
REM *********************************************************
REM ** Test de ping sur une liste de machines ***
REM ** ***
REM *********************************************************
set /p nombre_reseau_to_scan="nombre de reseau a scanner : "
REM *************************************************
REM *** Création du nom des fichier de destination ***
REM *************************************************
set heure=%time:~0,8%
set fichier_temporaire="temp.txt"
set nom_fichier_ok="reponses_ok [%date:/=-%] [%heure::=.%].txt"
set nom_fichier_no="reponses_no [%date:/=-%] [%heure::=.%].txt"
set /a nombre_reponses_ok=0
set /a nombre_reponses_no=0
REM *************************************
REM *** Création du fichier d'adresse ***
REM *************************************
echo.> %fichier_temporaire%
set /a nb_to_ping=0
:MASTER
set /p debut_addr="saisir l'adrresse reseau (ex:192.168.0.0): "
set fin_addr=255
set /a compteur_addr=0
echo Cr‚ation du fichier temporaire ...
:Boucle
echo %debut_addr:~0,-2%.%compteur_addr% >> %fichier_temporaire%
set /a compteur_addr=compteur_addr+1
set /a nb_to_ping=nb_to_ping+1
IF not %compteur_addr%==%fin_addr% GOTO BOUCLE
set /a nombre_reseau_to_scan=nombre_reseau_to_scan-1
IF not %nombre_reseau_to_scan%==0 GOTO MASTER
REM ***********************************************
REM *** Initialisation des fichiers de stockage ***
REM ***********************************************
echo ****************************************************** >> %nom_fichier_ok%
echo ** *** >> %nom_fichier_ok%
echo ** Fichier de reponses positives au ping *** >> %nom_fichier_ok%
echo ** *** >> %nom_fichier_ok%
echo ****************************************************** >> %nom_fichier_ok%
echo. >> %nom_fichier_ok%
echo ******************************************************* >> %nom_fichier_no%
echo ** *** >> %nom_fichier_no%
echo ** Fichier de reponses positives au ping *** >> %nom_fichier_no%
echo ** *** >> %nom_fichier_no%
echo ******************************************************* >> %nom_fichier_no%
echo. >> %nom_fichier_no%
REM ****************************************************************
REM *** Lecture du nom des machines dans le %fichier_temporaire% ***
REM ****************************************************************
ECHO *********** Debut des pings ***********
FOR /F %%i IN (temp.txt) Do call :INSTALLATION %%i
REM FOR /F %%i IN (%i) Do call :INSTALLATION %%i
ECHO *********** Fin des pings ***********
echo.
set /a nombre_reponses=nombre_reponses_ok+nombre_reponses_no
echo *** %nombre_reponses% reponse sur un total de %nb_to_ping% adresses
echo *** %nombre_reponses_ok% reponses positives
echo *** %nombre_reponses_no% reponses negatives
DEL /F /Q %fichier_temporaire%
echo. >> %nom_fichier_ok%
echo. >> %nom_fichier_no%
ECHO *********** Fin des pings *********** >> %nom_fichier_ok%
ECHO *********** Fin des pings *********** >> %nom_fichier_no%
echo *** %nombre_reponses% reponse sur un total de %nb_to_ping% adresses >> %nom_fichier_ok%
echo *** %nombre_reponses% reponse sur un total de %nb_to_ping% adresses >> %nom_fichier_no%
echo *** %nombre_reponses_ok% reponses positives >> %nom_fichier_ok%
echo *** %nombre_reponses_no% reponses negatives >> %nom_fichier_no%
ATTRIB +R %nom_fichier_ok%
ATTRIB +R %nom_fichier_no%
PAUSE
GOTO FIN
:INSTALLATION
SET Machine=%1
SET Compteur=0
REM *************************************
REM *** Execution de la commande ping ***
REM *************************************
FOR /F "tokens=1" %%i IN ('ping %Machine% -n 1') DO call :TestPing %%i
GOTO TestPingSuite
REM Teste si les mot Réponse et Hôte sont contenu dans les lignes générées par la commande ping comme premier mot.
REM Si oui, alors on incremente le compteur Compteur
:TestPing
set ChainePing=%1
IF %ChainePing%Chaine==D‚laiChaine set /a Compteur=%Compteur%+1
IF %ChainePing%Chaine==H“teChaine set /a Compteur=%Compteur%+1
GOTO FIN
REM A la fin du for /F on entre dans ce test. Si le compteur est toujours à 0 c'est qu aucune
REM ligne générée par le ping ne contenait les mots Hôte et Délai comme premier mot.
:TestPingSuite
if %Compteur%==0 GOTO PingOK
GOTO NoPing
REM ************************
REM *** Procedure NoPing ***
REM ************************
:NoPing
REM ****** Il y a eu un probleme sur le ping de la machine %Machine
set /a nombre_reponses_no=nombre_reponses_no+1
ECHO *** Ping ERROR sur %Machine%
ECHO *** Ping ERROR sur %Machine% >> %nom_fichier_no%
GOTO FIN
REM ************************
REM *** Procedure PingOK ***
REM ************************
:PingOK
REM ****** PingOK sur la machine %Machine%
set /a nombre_reponses_ok=nombre_reponses_ok+1
ECHO *** Ping OK sur %Machine%
ECHO *** Ping OK sur %Machine% >> %nom_fichier_ok%
GOTO FIN
:FIN