[BATCH] caractere spécial

Résolu
dionysoos Messages postés 85 Statut Membre -  
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   -
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

cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
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!
    ................................................
0