[BATCH] caractere spécial [Résolu/Fermé]

Signaler
Messages postés
82
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
25 février 2010
-
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
-
Bonjour,

Bonjour je suis entrain de faire un fichier batch, qui a pour but de me donner le nom d'un uc ainsi que le nom de l'utilisateur a partir d'un adresse mac en se servant d'un fichier ou toutes ces infos sont stocké mon programme fonctionne trés bien mais pour le peaufiner j'effectue une batterie de test, et un test me pose probleme, c'est un test pour voire si l'utilisateur a bien rentré une adresse mac au format standard xx:xx:xx:xx:xx:xx j'ai pensé utilisé le caractere spécial * mais sa ne fonctionne pas, je vous laisse la partie qui me pose problème si vous avez des idées je vous écoute.

REM test le format de l'adresse entré
if "%AdMac%"=="**:**:**:**:**:**" goto TestAdOk
echo.
echo ERREUR DE SAISIE VEUILLEZ ENTRER L ADRESSE DANS LE FORMAT XX:XX:XX:XX:XX:XX
pause
goto TestAdNoOk


Merci.

13 réponses

Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
117
Bonjour,

ECHO OFF

SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions
CLS

    SET /A   "_LONG=0"
    SET /A   "_borne=32"
    SET /A   "_nb_2p=-1"
    SET /A   "_nb_car=0"
    SET /A   "_indic_anom=0"
    SET      "_delim_fin=°"

rem  Pour tests :
    SET       "_chaineMAC="ab:cd:ef:gh:ij:kl"



    SET       _chaineMAC=!_chaineMAC:"=!
    SET      "_chaineMAC=!_chaineMAC!:%_delim_fin%"

    FOR /L    %%I                     IN  (0,1,!_borne!)               DO  (
        IF   "!_LONG!"                ==   "0"    (
           SET /A "_nb_car+=1"
           IF "!_chaineMAC:~%%I,1!"   ==   ":"    (
               SET /A "_nb_2p+=1"
               IF "!_nb_car!"         ==   "3"    (
                  SET /A "_nb_car=0"
               ) ELSE (
                  SET /A "_indic_anom=1"          )  )   )
           IF "!_chaineMAC:~%%I,1!"   ==   "!_delim_fin!"     (
               SET /A "_LONG=%%I - 1"                         )            )

    IF  NOT "!_nb_2p!"                == "5"  (SET /A "_indic_anom=2")

    SET       _chaineMAC=!_chaineMAC:~0,+%_LONG%!

rem Tests de conformité de la structure de la zone saisie.

rem    IF   "!_indic_anom!"            == "1"  (
rem           ECHO  .......................    )
rem    IF   "!_indic_anom!"            == "2"  (
rem           ECHO  .......................    )

rem Pour tests (controles visuels).
    ECHO.
    ECHO.
    SET      _cmde=echo CONTENU  DE LA CHAINE _chaineMAC : !_chaineMAC!
    !_cmde!
    ECHO LONGUEUR DE LA CHAINE _chaineMAC : %_LONG%
    ECHO NB. DE SEPARATEURS !_nb_2p!
    ECHO indic_anom !_indic_anom!
    ................................................
Messages postés
82
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
25 février 2010
4
Bonjour,
Je te remercie pour ton algo, tu m'a mâché tous le travail là, il me reste plus qu'a l'implémenter dans mon code effectuer quelque test supplémentaire et cette partie sera bouclé.
Merci.
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
117
Alors, bonne continuation.
Messages postés
82
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
25 février 2010
4
Voila donc mon programme marche très bien avec la gestion des erreurs, ainsi que mon deuxième batch qui récupère des informations sur les poste adresse mac nom uc, nom utilisateur et les stock dans une liste qui est utilisé pour le premier dans lequel tu m'a aidé, plus car planifier sa sur le serveur pour récupérer les infos de tous les postes.
Merci a toi cchristian.
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
117
Bonjour,

Merci de m'avoir tenu informé, à bientôt sur ce site peut être.
Messages postés
3163
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
25 avril 2010
127
C'est en vue de hacker ?
Messages postés
82
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
25 février 2010
4
Non pas du tous
Messages postés
82
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
25 février 2010
4
J'explique le but de mon programme en BATCH en fait je suis dans une entreprise avec deux switch 100 ports manageable j'ai une interface pour voire l'utilisation du réseau par port certain port mon un peu trop haut a mon gout, je peut aussi accéder par telnet aux switch pour voire l'adresse mac connecté sur les ports, ce qui ne m'aide pas vraiment, j'ai lancé un listing du parc info d'une centaine de machines me donnant divers info sur les machines donc l'adresse mac, j'ai créé un fichier .txt contenant adresse mac : nom de l'uc : nom de l'utilisateur qui est consulté par ce fichier batch pour me retourner a partir d'une adresse mac des info sur l'utilsateur.
le caractere étoile * permettant de dire tous en dos je pensais qu'il aurait eut le meme effet dnas un fichier batch mais je dois mal m'y prendre.
Messages postés
82
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
25 février 2010
4
Personne n'a d'idée svp?
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
117
Bonjour,

J'ai "tâtonné" (2 heures environ) sur ton problème et je n'ai pas trouvé de commande ou d'instruction synthétiques qui puissent en rendre compte.
Je ne vois qu'un algorithme (boucle) d'investigation caractère par caractère de la chaîne à analyser avec comptage des
caractères de séparation (:) doublé d'un comptage de caractères (2 c.) précédant chacun d'eux (attention aux derniers :**) .
Mais ça semble un peu "lourd" pour un simple contrôle de cohérence de format d'une valeur saisie
Messages postés
82
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
25 février 2010
4
Merci de ton intérêt je vais essayer de me pencher sur le problème pour mettre en place cette algo, je te tiens au courant du résultat, j'avais aussi pensé a créer en dernier recourt un algo, mais j'étais persuadé qu'ont pouvait utiliser le caractère joker * pour éviter cette tache comme c'est le cas pour par exemple del *.txt qui efface tous les txt
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
117
Bonjour,

Pour tester la faisabilité de ma proposition j'ai monté un petit algo sur ce thème, si ça t'intéresse je te l'envoie. Il sera à paufiner, optimisation et tests complémentaires, on ne voit pas tout et je ne dispose malheureusement pas du temps nécessaire pour parfaire le boulot)
Messages postés
82
Date d'inscription
mardi 16 septembre 2008
Statut
Membre
Dernière intervention
25 février 2010
4
Je veut bien ton Algo après modification nécessaire et série de test je te donnerais les résultats