Porgrammation batch
jam-jam68140
Messages postés
18
Statut
Membre
-
jam-jam68140 Messages postés 18 Statut Membre -
jam-jam68140 Messages postés 18 Statut Membre -
Bonjour, je souhaite rentrer une formule qui désigne tous les caractere sauf les nombres.
Exemple:
:a
set/p nombre1=
if %nombre1%==( formule ) goto error
:error
echo Veuillez entrer un nombre svp.
pause>nul
:b
...
J'ai d'abord penssé à mettre:
if not %variable1%== "" goto error
malheuresement cette formule marche que avec un if devant! ( et comme je ne connais fas les formules -_-') Si je connai une formule qui désigne l'ensemble des nombres ou alors l'ensemble des caracteres sauf les nombre sa pourrai beaucoup m'aider! merci beaucoup!
Exemple:
:a
set/p nombre1=
if %nombre1%==( formule ) goto error
:error
echo Veuillez entrer un nombre svp.
pause>nul
:b
...
J'ai d'abord penssé à mettre:
if not %variable1%== "" goto error
malheuresement cette formule marche que avec un if devant! ( et comme je ne connais fas les formules -_-') Si je connai une formule qui désigne l'ensemble des nombres ou alors l'ensemble des caracteres sauf les nombre sa pourrai beaucoup m'aider! merci beaucoup!
19 réponses
-
Bonjour,
Il n'existe apparemment aucune commande permettant d'identifier un nombre
En tapant help | more , on obtient la liste de toutes les commandes disponibles sur son système -
Cependant, il existe des commandes créées par des logiciels évolués. J'en ai moi-même programmé en Turbo C++. La commande Isnumeric et d'autres sont disponibles ici en anglais
http://batchfunctions.blogspot.com/2009/07/batch-file-command-isnumeric.html -
merci. Je ne comprend absolument rien mais je vais percévérer! :D si je trouve ce que je demandai je maitrrai la formule! merci quand meme! :)
-
Euh .ce que vous cherchez est un ensemble de tous les caractères et/ou de tous les nombres. S'agit-il des caractères et des nombres d'un fichier ?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
en fait... quand je créer une variable , je voudrai mettre un if : si cette variable n'est pas un nombre -> message d'erreur
en gros c'est sa ce que je voudrai faire! -
Donc, si j'ai bien compris
if not isnumeric %variable1% goto error -
quand je fais sa sa fonctionne pas! tu sais pourquoi?
@echo off
set/p variable1=
if not isnumeric %variable1% goto error
goto ok
:ok
echo c'est bon, la variable est un nombre
pause>nul
:error
echo ce n'est pas bon je t'ai demander d'entrer un nombre!
pause>nul -
Avec Windows 7, il y a un problème d'errorlevel (niveau d'erreur) qui n'est généralement pas conservé quand on change de commande.
isnumeric ertt renvoie false (errorlevel 1), mais avec un if avant, ça ne marche pas. J'ai quelques batch qui sont maintenant inutilisables.
Quand on tape isnumeric seul, on a un tip (coup de pouce) qui indique comment capturer un output (sortie) avec la commande for en utilisant token, mais j'avoue que je n'y comprends pas grand chose. -
mdr je devrai abandonné alors ( juste je suis sur XP! sa change peut etre quelque chose!? )
-
Sous XP, on devrait s'en sortir. Je vais scinder la commande en deux
Isnumeric %variable1%
if errorlevel 1 goto error -
sa marche pas il me marke isnumeric n'est pa une commande interne!
-
] (...) n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes :
Si le message apparaît constamment dans l'invite de commandes, vérifier que le chemin de recherche est correct dans le panneau de configuration dans /système/Avancé/Variables d'environnement/path. Il doit comporter au moins les dossiers Windows et systéme. Autrement, le message peut signifier qu'une commande n'est plus prise en charge par le système d'exploitation, -
heu... j'ai pas tout sa!!! -_-' mdr mais je suis pas l'administrateur! Et toutes les autre commandes marche (echo, if, goto, random, for, ...) tout marche sauf sa! en tout cas merci quand même de m'aider! c'est sympa! :)
-
Est-ce que Isnumeric se trouve bien dans le dossier c:\windows\system32 comme les commandes externes xcopy, attrib , etc. Il faudrait tester l'une ou l'autre
-
heu... l'icone, c'est l'icone du batch sans le rouage nan? si c'est sa ( et meme d'aileur si c'est pas sa, j'ai aucun fichier nommé isnumeric! comment le mettre?
-
Il faudrait installer le fichier BatchFunctions1.zip en double-cliquant dessus, mais peut-être n'avez-vous pas les droits
-
nan pas pour installer quelque chose dans le systeme32! mais on peut pa l'installer autre part? ( pas accès non plus au programme files! -_-' )
-
Hélas non. Le .zip va s'ouvrir sur une interface comportant une commande Install qui doit placer Isnumeric.exe dans c:\windows\system32
-
sniiif! :'( mdr merci beaucoup kan meme!
j'utiliserai :
echo %variable%|findstr/r "[^0-9]"
if errorlevel==1 echo "la variable est bien un nombre"
if not errorlevel==1 echo "la variable contient au moin une lettre et n'est donc pas valide!"
sa marche aussi ! :) merci beaucoup quand même!