Porgrammation batch

Fermé
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 - 2 nov. 2011 à 15:24
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 - 10 nov. 2011 à 22:33
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!

19 réponses

jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
4 nov. 2011 à 12:57
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
0
jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
4 nov. 2011 à 13:50
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
0
jam-jam68140
6 nov. 2011 à 11:10
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! :)
0
jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
6 nov. 2011 à 11:35
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 9
8 nov. 2011 à 21:34
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!
0
jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
8 nov. 2011 à 21:54
Donc, si j'ai bien compris
if not isnumeric %variable1% goto error
0
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 9
8 nov. 2011 à 22:12
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
0
jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
9 nov. 2011 à 10:40
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.
0
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 9
9 nov. 2011 à 17:52
mdr je devrai abandonné alors ( juste je suis sur XP! sa change peut etre quelque chose!? )
0
jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
9 nov. 2011 à 18:02
Sous XP, on devrait s'en sortir. Je vais scinder la commande en deux
Isnumeric %variable1%
if errorlevel 1 goto error
0
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 9
10 nov. 2011 à 12:25
sa marche pas il me marke isnumeric n'est pa une commande interne!
0
jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
10 nov. 2011 à 12:32
] (...) 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,
0
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 9
10 nov. 2011 à 18:27
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! :)
0
jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
Modifié par jmwurth le 10/11/2011 à 18:49
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
0
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 9
10 nov. 2011 à 19:12
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?
0
jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
10 nov. 2011 à 19:25
Il faudrait installer le fichier BatchFunctions1.zip en double-cliquant dessus, mais peut-être n'avez-vous pas les droits
0
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 9
10 nov. 2011 à 20:32
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! -_-' )
0
jmwurth Messages postés 2933 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 23 juin 2013 850
10 nov. 2011 à 20:39
Hélas non. Le .zip va s'ouvrir sur une interface comportant une commande Install qui doit placer Isnumeric.exe dans c:\windows\system32
0
jam-jam68140 Messages postés 18 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 27 novembre 2011 9
10 nov. 2011 à 22:33
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!
0