Précédent   Forum des professionnels en informatique > Logiciels > Autres Logiciels
Autres Logiciels Bureautique, navigateurs, clients mails, traitements de textes, tableurs, multimédia, logiciels divers, etc...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2005, 11h03   #1
Invité de passage
 
Inscription : juin 2003
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 5
Points : 3
Points : 3
Envoyer un message via MSN à Arkenstone
Par défaut Commande batch

Salut!
voila, je suis en train d'ecrire un point bat pour faire des test sur un logiciel (pour simuler en ligne de commande des actions utilisateurs) et j'ai un soucis de menu.
Mon code:

Citation:
:init
echo [------------------------------------------------>>c:\testsvn.log
Date /t time /t >>c:\testsvn.log

ECHO ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO º Confirmation des paramètres º
ECHO ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

Echo Nom du poste: %1
Echo Heure d'arret demandée: %2

echo ces informations sont elles correctes? Si oui, le batch va lancer les tests; si non, le batch va s'arreter
choice /c: on /n (O/N)?
IF ERRORLEVEL N GOTO Fin
IF ERRORLEVEL O GOTO log_parametres


:log_parametres
echo paramètres ok >>c:\testsvn.log
Echo Nom du poste: %1 >>c:\testsvn.log
Echo Heure d'arret demandée: %2 >>c:\testsvn.log
goto tests
Mon problème est que la commande "choice" ne fait pas son travail: pas de reponse utilisateur demandée!
sur le net, pour les menu en batch je n'ai trouvé que cette commande.
quelqu'un en connait il une autre? ou est l'erreur dans ma syntaxe?

merci d'avance!
Arkenstone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2005, 11h32   #2
Membre Expert
 
Avatar de Juju_41
 
Homme
Développeur en systèmes embarqués
Inscription : février 2003
Messages : 973
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur en systèmes embarqués

Informations forums :
Inscription : février 2003
Messages : 973
Points : 1 162
Points : 1 162
Bonjour

Visiblement (enfin sur mon PC en tout cas), la commande CHOICE n'existe plus sur Windows XP ...
Si tu as un compilateur Pascal, je peux te proposer de créer ton propre CHOICE. Le code s'écrirai comme ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program Choice;

function Readkey: byte;
var c: byte;
begin
   asm
      xor ah,ah
      int 16h
      mov [c],al
   end;
   Readkey := c;
end;

begin
   Halt(Readkey);
end.
Ce petit programme va attendre une touche au clavier, et le code ASCII de la touche sera renvoyé en code de sortie du programme (ERRORLEVEL).

Cela donnerait donc pour ton programme :
Code :
1
2
3
4
5
6
7
echo ces informations sont elles correctes? Si oui, le batch va lancer les tests; si non, le batch va s'arreter
echo (O/N) ?
choice
IF ERRORLEVEL 78 GOTO Fin 
IF ERRORLEVEL 79 GOTO log_parametres 
IF ERRORLEVEL 110 GOTO Fin 
IF ERRORLEVEL 111 GOTO log_parametres
Codes ASCII :
N => 78
O => 79
n => 110
o => 111

Si tu as des soucis n'hésites pas
Juju_41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2005, 12h08   #3
Invité de passage
 
Inscription : juin 2003
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 5
Points : 3
Points : 3
Envoyer un message via MSN à Arkenstone
okkkk!
ben... pour info, c pas que sous XP qu'elle n'existe pas!
je suis sous windows 2000 au boulot.

merci pr ton petit code pascal!
le pb c que g pas de quoi le compiler ici.
va falloir que je download ça!

pfouh! c loin le pascal!! lol!

merci pr le code!
bon app.
Arkenstone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 02h33   #4
Invité de passage
 
Inscription : juillet 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 5
Points : 4
Points : 4
Bonjour

Il y a une autre solution pour utiliser CHOICE : pour récupérer le niveau d'erreur, il suffit de mettre le mot clé "errorlevel" entre deux "%". Pour l'exemple :
CHOICE /C:on Voulez-vous
if %errorlevel%==1 goto oui
if %errorlevel%==2 goto non

sachant que: _%errorlevel%==0 correspond à l'interruption Crtl+C
_%errorlevel%==1 correspond au premier choix
_%errorlevel%==X correspond au Xème choix possible dans les options spécifiées à la commande CHOICE

J'ai utilisé cette solution trouvée par hasard et cela marche parfaitement

Si cela peut vous aider ^^
Pretender7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2006, 13h29   #5
Invité de passage
 
Inscription : juillet 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 5
Points : 4
Points : 4
Je me suis aperçu que la solution que je vous ai donné précédemment ne fonctionne que si vous avez le logiciel 'Power Batch' d'installer, sans quoi la fonction 'CHOICE' n'est effectivement pas reconnue comme une commande valide. donc ignorez le message précédent si vous ne possédez pas powerbatch (qui est un logiciel d'édition de batchs totalement gratuit et bien utile disponible sur le net).
Pretender7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h40.


 
 
 
 
Partenaires

Hébergement Web