|
|
|
|
Posté par
christboy, le vendredi 1 juin 2007 à 16:09:26ECHO OFF
cls
REM *********************************************************
REM ** Test de ping sur une liste de machines ***
REM ** ***
REM *********************************************************
set /p nombre_reseau_to_scan="saisissez le nombre de r‚seau(x) … 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"
REM **************************************************
REM *** initialisation des variables ***
REM **************************************************
set /a nombre_reponses_ok=0
set /a nombre_reponses_no=0
set /a nb_to_ping=0
REM *************************************
REM *** Création du fichier d'adresse ***
REM *************************************
echo.> %fichier_temporaire%
:MASTER
echo saisir l'adresse r‚seau (ex:192.168.0.0):
echo (limite au r‚seau XXX.XXX.XXX.9)
set /p debut_addr=?
set debut_addr=%debut_addr:~0,-2%
set fin_addr=255
set /a compteur_addr=1
echo Cr‚ation du fichier temporaire ...
:Boucle
echo %debut_addr%.%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 réponses positives au ping *** >> %nom_fichier_ok%
echo ** *** >> %nom_fichier_ok%
echo ********************************************** >> %nom_fichier_ok%
echo. >> %nom_fichier_ok%
echo *********** D‚but des pings *********** >> %nom_fichier_ok%
echo ********************************************** >> %nom_fichier_no%
echo ** *** >> %nom_fichier_no%
echo ** Fichier de réponses positives au ping *** >> %nom_fichier_no%
echo ** *** >> %nom_fichier_no%
echo ********************************************** >> %nom_fichier_no%
echo. >> %nom_fichier_no%
echo *********** D‚but des pings *********** >> %nom_fichier_no%
REM ****************************************************************
REM *** Lecture du nom des machines dans le %fichier_temporaire% ***
REM ****************************************************************
ECHO *********** D‚but des pings ***********
FOR /F %%i IN (temp.txt) Do call :INSTALLATION %%i
ECHO ************ Fin des pings ************
REM ******************************************************************
REM *** Ecriture des statistiques dans les fichiers de destination ***
REM ******************************************************************
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% réponse sur un total de %nb_to_ping% adresses >> %nom_fichier_ok%
echo *** %nombre_reponses% réponse sur un total de %nb_to_ping% adresses >> %nom_fichier_no%
echo *** %nombre_reponses_ok% réponses positives >> %nom_fichier_ok%
echo *** %nombre_reponses_no% réponses negatives >> %nom_fichier_no%
REM **************************************************************
REM *** Mise en place des attribut des fichiers de destiantion ***
REM **************************************************************
ATTRIB +R %nom_fichier_ok%
ATTRIB +R %nom_fichier_no%
PAUSE
GOTO FIN
REM ******************************
REM *** Procedure INSTALLATION ***
REM ******************************
: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
Configuration: Windows 2000 Firefox 2.0.0.4
Les fichiers temporaires c'est pas grave, tu as qu'a le supprimer à la fin de ton batch |
oui mais le fichier est supprimé a la fin mais j'aimerai ne plus avir de fichier temporaire du tout ^^.
En fait je programme en C++ d'habitude j'aurais aimé savoir si en batch il existait des tableau ou quelque chose qui y ressemble car sa supprimerai ce fichier. Mais merci de ta reponse quand meme. |
Salut
Non, pas de tableau en ligne de commande. Uniquement des variables "int" ou "String" via la commande SET. Aussi en batch tout est séquentiel. Tu peux éviter l'écriture du fichier temporaire, mais il faut complètement repenser ton fichier. Tu peux aussi en profiter pour le simplifier. by pcv_only/ |
En fait, j'avais pris un fichier temporaire car je voulais que l'utilisateur entre toutes les infos au debut du programme et puisse le laisser faire seul ensuite. Donc le fichier temporaire pouvait stocker les adresses a pinger. Si je fais comme tu me conseil (càd de facon sequentielle pour chaque réseau) l'utilisateur serait obliger d'intervenir en cours de route, hors c'est ce que je veux eviter.
Mais bon comme apparament il n'y a rien pour stocker un ensemble de variable en batch, j'ai pas le choix : fichier temporaire ^^' |
Dans ce cas il faut faire un fichier d'initialisation et non pas un fichier temporaire... |
En plus, comme ton batch semble concerner des machines du réseau LAN, tu n'as besoin ni de l'un ni de l'autre... |
| 03/01 12h12 | [Windows XP] Renommer plusieurs fichiers | Windows XP |
| 11/10 11h47 | Empêcher la fermeture de la fenêtre ipconfig ou ping | Windows XP |
| 23/08 20h00 | Supprimer complètement un programme | Windows |
| 01/11 01h00 | Installation de programmes - Windows Installer CleanUp | Windows |
| 05/02 16h56 | [Windows] Programme invisible dans Ajout/Suppression | Windows |
| 11/07 11h14 | Script batch pour PING | 3 |
| 21/03 15h03 | Batch, commande ping et rapport d'erreur | 2 |
| 05/02 10h53 | Programme ping | 0 |
| 20/09 13h16 | Batch pour "Ping" | 8 |
![]() | progeCAD 2008 - Vous recherchez une solution gratuite afin de vous familiariser avec le domaine du CAD ? Ce logiciel est fait pour vous.... | Catégorie: 3D Licence: Freeware/gratuit |
![]() | PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,... | Catégorie: Développement Licence: Freeware/gratuit |
![]() | MuseTools - MuseTools a pour but de faciliter la vie des utilisateurs de MPC (MusePack), qualitativement parlant le meilleur format de... | Catégorie: Conversion audio Licence: Freeware/gratuit |
![]() | uTorrent - µTorrent est un client BitTorrent , c'est-à-dire un logiciel de téléchargement Peer-To-Peer (P2P) capable de gérer les... | Catégorie: Téléchargement Licence: Freeware/gratuit |
![]() | Ping Pals | Catégorie: Jeu vidéo Nintendo DS | 8.67 € PriceMinister |
![]() | Verbatim Mouse Wireless Programmable | Catégorie: Souris | 15.99 € Matrixx-media FR |
![]() | Les Experts : Mort | Catégorie: Jeu vidéo PC | 28.90 € PriceMinister |
![]() | Spin Drive Ping Pong | Catégorie: Jeu vidéo PS2 | 18.49 € PriceMinister |