[BATCH] caractere spécial

Résolu/Fermé
dionysoos Messages postés 82 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 25 février 2010 - 24 sept. 2008 à 14:49
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 26 sept. 2008 à 14:23
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.
A voir également:

13 réponses

cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
25 sept. 2008 à 14:27
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