Bonjour.
Peut-on déterminer en un seule opération si une variable (ou une partie d'une variable) est numérique ?
(on peut bien sûr vérifier que chaque caractère de la variable - ou de la partie de la variable - est un chiffre,
c'est bestial, mais ça peut marcher).
Une idée ?
À vous lire.
Numérique ou non ?
Modérateur : WIN32-[GG]
Re: Numérique ou non ?
bonjour,
j'utiliserais le SET /A pour faire le test.
Par exemple si ta variable s'appelle X, j'utilise une autre variable VARTEMP
Bon, c'est un exemple, à adapter selon ce que tu veux faire
j'utiliserais le SET /A pour faire le test.
Par exemple si ta variable s'appelle X, j'utilise une autre variable VARTEMP
Code : Tout sélectionner
SET VARTEMP=PAS_NUMERIQUE
REM -- on utilise SET /A (on feinte car on ne fait pas d'opération) pour voir si c'est numérique
SET /A VARTEMP=%X% 2>NUL
IF "%VARTEMP%"=="PAS_NUMERIQUE" ECHO %X% n'est pas numerique...
-
- Batcheur occasionnel
- Messages : 2
- Enregistré le : 14 févr. 2015 10:53
- Contact :
Re: Numérique ou non ?
The above statement, this is a great value for me and many people here.
Re: Numérique ou non ?
(on peut bien sûr vérifier que chaque caractère de la variable - ou de la partie de la variable - est un chiffre, c'est bestial, mais ça peut marcher).????
Re: Numérique ou non ?
Mmmoui, on peut le faire.sakooon a écrit :(on peut bien sûr vérifier que chaque caractère de la variable - ou de la partie de la variable - est un chiffre, c'est bestial, mais ça peut marcher).????
Je dirais qu'il faut supprimer tous les chiffres, et vérifier à la fin que le résultat est vide.
En supposant que ta variable à vérifier s'appelle X, cela donnerait qq chose comme:
Code : Tout sélectionner
REM On suppose que la variable a verifier est X
SETLOCAL
SET VARTEMP="%X%"
if %VARTEMP%=="" ECHO la variable est vide & GOTO :EOF
REM On retire les chiffres un à un
SET VARTEMP=%VARTEMP:0=%
SET VARTEMP=%VARTEMP:1=%
SET VARTEMP=%VARTEMP:2=%
SET VARTEMP=%VARTEMP:3=%
SET VARTEMP=%VARTEMP:4=%
SET VARTEMP=%VARTEMP:5=%
SET VARTEMP=%VARTEMP:6=%
SET VARTEMP=%VARTEMP:7=%
SET VARTEMP=%VARTEMP:8=%
SET VARTEMP=%VARTEMP:9=%
REM on vérifie et affiche le résultat
if %VARTEMP%=="" ECHO %X% est NUMERIQUE & GOTO :EOF
ECHO %X% n'est pas numerique