Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1983 connectés 

  FORUM HardWare.fr
  Windows & Software

  Question pointue sur le batch

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question pointue sur le batch

n°254379
Modos
Festina lente
Posté le 17-04-2001 à 13:34:26  profilanswer
 

J'ai la commande choice et dans l'aide on me dit que si on tape une touche non-demandée, il renvoit un caractère BEL ou 07h.
 
Dans mon if errorlevel qu'est ce que je dois mettre ???
 
IF ERRORLEVEL BEL GOTO fin ???

mood
Publicité
Posté le 17-04-2001 à 13:34:26  profilanswer
 

n°254405
JPA
Posté le 17-04-2001 à 14:17:32  profilanswer
 

Fais plutôt comme ceci :
 
:choix
cls
echo explications diverses à adapter à ton cas
 
CHOICE /C:ABC CHOISISSEZ UNE OPTION
IF ERRORLEVEL=3 goto choixC
IF ERRORLEVEL=2 goto choixB
IF ERRORLEVEL=1 goto choixA
 
echo Erreur de saisie
pause
Goto choix  
 
:choixA
 
goto fin
 
etc...

n°254408
Modos
Festina lente
Posté le 17-04-2001 à 14:22:19  profilanswer
 

Ca va pas ton truc, puisque choice ne permet que de taper la lettre juste.
 
Essaie et tu verras que ça ne fonctionne pas. Tu n'arriveras pas à la ligne d'erreur

n°254411
JPA
Posté le 17-04-2001 à 14:29:10  profilanswer
 

Précise ton besoin : si choice permet de forcer les caractères autorisés, où est le problème ?

n°254427
Modos
Festina lente
Posté le 17-04-2001 à 14:59:25  profilanswer
 

Ce que je voudrais, c'est que choice renvoie une erreur quand je tape une autre lettre que celle qui est dans les choix

n°254438
olivierb
Posté le 17-04-2001 à 15:12:57  profilanswer
 

:)  
IF ERRORLEVEL=255 goto erreur
 :jap:

n°254444
olivierb
Posté le 17-04-2001 à 15:22:44  profilanswer
 

:pt1cable:  
le signe = ne sert à rien,peut-ette même a planter...

n°254445
Modos
Festina lente
Posté le 17-04-2001 à 15:26:13  profilanswer
 

Tu as essayé ton truc ? Le code 255 est renvoyé quand choice décèle une erreur et pas quand on se trompe de touche
 
Je vous montre ci-dessous l'aide pour choice
------------------------
Si vous appuyez sur une touche non prédéfinie, CHOICE émet un signal sonore en envoyant un caractère BEL ou 07h au pupitre de commande.
------------------------
Il est bien marqué qu'il faut le BEL ou le 07h

n°254451
bruno31
Posté le 17-04-2001 à 15:35:18  profilanswer
 

CHOICE emet un signal sonore ...
 
SONORE pas de renvoi E/S ...
 
Ton choice attendra un choix valide.


---------------
http://www.hardfr.org/ [HardFr]
n°254452
Modos
Festina lente
Posté le 17-04-2001 à 15:37:56  profilanswer
 

Il est bien marqué que choice renvoie un signal sonore et les caractères BEL et 07h
 
Donc je voudrait le code errorlevel pour ces 2 caractères

mood
Publicité
Posté le 17-04-2001 à 15:37:56  profilanswer
 

n°254457
olivierb
Posté le 17-04-2001 à 15:47:30  profilanswer
 

JPA etait pourtant sympa de t'avoir mâché le boulot...
il t'avait montré le chemin avec son doigt,et toi tu regardes son coude.... :lol:  :lol:

n°254459
Modos
Festina lente
Posté le 17-04-2001 à 15:49:17  profilanswer
 

Je comprend pas bien olivierb, as-tu essayé le code de JPA, il ne renvoie pas d'erreur en cas de mauvais caractère !!!

n°254494
olivierb
Posté le 17-04-2001 à 16:54:58  profilanswer
 

siiii,il couine comme une vache...!!!  
bon...
choice teste lui même les equivalence entre le clavier et choix specifié dans ton prog par /c:ABC (,dans l'exemple de JPA,si tu tapes A c'est errorlevel 1 qui est activé,B c'est errorlevel 2,,...etc)
si aucun de ceux-là n'est specifié ,ben tu reste sur ta question,et si tu tapes aut'chose il Hurle lui-même, il ne positionne pas errorlevel a un code BELL ...
 :p

n°254501
Modos
Festina lente
Posté le 17-04-2001 à 16:58:54  profilanswer
 

Contrairement, à ce que tu penses (et tu n'es pas censé le savoir à la base :-), je connais assez bien le batch.
 
Je connaissais les code errorlevel par rapport à l'option /c:ABC de choice.
 
Donc tu me réponds que, à part faire le bruit, il n'est pas possible de faire en sorte que choice renvoie une erreur (caractère) ?

n°254506
JPA
Posté le 17-04-2001 à 17:11:23  profilanswer
 

Après relecture,  
------------------------  
Si vous appuyez sur une touche non prédéfinie, CHOICE émet un signal sonore en envoyant un caractère BEL ou 07h au pupitre de commande.  
------------------------  
celà ne veut pas dire que tu peux utiliser le code que renvoie Choice, mais que le HP interne va couiner...
 
je suis d'accord avec toi que sur ma proposition il y a 3 lignes inutiles (la gestion des erreurs) vu que choice les gère et que ces 3 lignes ne seront jamais exécutées.
A+

n°254524
Modos
Festina lente
Posté le 17-04-2001 à 17:37:58  profilanswer
 

Merci pour vos réponse même si je n'ai pas réponse à mes questions.
 
Poru vous remercier, voiçi le programme en batch (un jeu en fait) pour lequel j'avais besoin de la réponse. Si vous avez des propositions pour le rendre plus marrant, n'hésitez pas à m'en parler
 
------------------------
 
@echo off
set p=JeuGD
if not exist "C:\PointBat\*.*" md "C:\PointBat"
if exist "C:\PointBat\!%p%*.*" del "C:\PointBat\!%p%*.*" > nul
%comspec% /e:2048/c for %%v in (1 2) do prompt set time$q$d $t$_ | find/v "$" > "C:\PointBat\!%p%{T}.bat"
call "C:\PointBat\!%p%{T}.bat"
echo %time%> "C:\PointBat\!%p%DTd.txt"
if exist "C:\PointBat\%p%.txt" del "C:\PointBat\%p%.txt" > nul
 
::----------- DEBUT -----------
 
echo.
echo Pour jouer, il suffit de taper la lettre correspondante
echo.
echo Gauche = L
echo Droite = S
echo.
echo Tu as 3 secondes pour taper ta r?ponse
echo.
pause
%comspec% /e:2048/c for %%v in (1 2) do prompt set time$q$d $t$_ | find/v "$" > "C:\PointBat\!%p%{T}.bat"
call "C:\PointBat\!%p%{T}.bat"
echo %time%> "C:\PointBat\!%p%J1.txt"
 
:debut2
%comspec% /e:2048/c for %%v in (1 2) do prompt set time$q$d $t$_ | find/v "$" > "C:\PointBat\!%p%{T}.bat"
call "C:\PointBat\!%p%{T}.bat"
echo %time%> "C:\PointBat\!%p%JVerif.txt"
 
:jeu1
find ",1" < "C:\PointBat\!%p%JVerif.txt" > nul
if errorlevel 1 goto jeu2
choice Gauche /n /csl /ts,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:jeu2
find ",2" < "C:\PointBat\!%p%JVerif.txt" > nul
if errorlevel 1 goto jeu3
choice Droite /n /cls /tl,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:jeu3
find ",3" < "C:\PointBat\!%p%JVerif.txt" > nul
if errorlevel 1 goto jeu4
choice Gauche /n /csl /ts,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:jeu4
find ",4" < "C:\PointBat\!%p%JVerif.txt" > nul
if errorlevel 1 goto jeu5
choice Droite /n /cls /tl,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:jeu5
find ",5" < "C:\PointBat\!%p%JVerif.txt" > nul
if errorlevel 1 goto jeu6
choice Gauche /n /csl /ts,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:jeu6
find ",6" < "C:\PointBat\!%p%JVerif.txt" > nul
if errorlevel 1 goto jeu7
choice Droite /n /cls /tl,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:jeu7
find ",7" < "C:\PointBat\!%p%JVerif.txt" > nul
if errorlevel 1 goto jeu8
choice Gauche /n /csl /ts,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:jeu8
find ",8" < "C:\PointBat\!%p%JVerif.txt" > nul
if errorlevel 1 goto jeu9
choice Droite /n /cls /tl,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:jeu9
find ",9" < "C:\PointBat\!%p%JVerif.txt" > nul
if errorlevel 1 goto jeu0
choice Gauche /n /csl /ts,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:jeu0
choice Droite /n /cls /tl,3
if errorlevel 07h goto erreur
if errorlevel 2 goto debut2
if errorlevel 1 goto finj
goto finj
 
:erreur
echo erreur
pause
 
:finj
echo.
echo P E R D U
echo.
echo Temps pass? au jeu qui tue
echo.
 
type "C:\PointBat\!%p%J1.txt"
%comspec% /e:2048/c for %%v in (1 2) do prompt set time$q$d $t$_ | find/v "$" > "C:\PointBat\!%p%{T}.bat"
call "C:\PointBat\!%p%{T}.bat"
echo %time%
echo.
pause
 
::----------- FIN -----------
 
:fin
mode con: lines=25
cls
echo.
echo.
echo Merci d'utiliser le programme "%p%.bat" 1.0
echo cr?? par SebastienG
echo.
echo.
echo.
echo.
echo.
echo E-Mail : PointBat@yahoo.com
echo.
echo URL    : http://www.pointbat.be.tf/
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
%comspec% /e:2048/c for %%v in (1 2) do prompt set time$q$d $t$_ | find/v "$"> "C:\PointBat\!%p%{T}.bat"
call "C:\PointBat\!%p%{T}.bat"
echo %time%> "C:\PointBat\!%p%DTf.txt"
set time=
echo D?but du programme : >> "C:\PointBat\!%p%DTfin.txt"
type "C:\PointBat\!%p%DTd.txt" >> "C:\PointBat\!%p%DTfin.txt"
echo Fin du programme : >> "C:\PointBat\!%p%DTfin.txt"
type "C:\PointBat\!%p%DTf.txt" >> "C:\PointBat\!%p%DTfin.txt"
type "C:\PointBat\!%p%DTfin.txt"
echo.
choice Veux-tu voir le fichier log "C:\PointBat\%p%.txt" [O,N]? /n /c:NO /tn,9
if errorlevel 2 "C:\Program Files\NoteTab Light\Notetab" "C:\PointBat\%p%.txt"
 
echo. >> "C:\PointBat\LogProgramme.txt"
echo %p%.bat >> "C:\PointBat\LogProgramme.txt"
find "," < "C:\PointBat\!%p%DTfin.txt">> "C:\PointBat\LogProgramme.txt"
echo. >> "C:\PointBat\%p%.txt"
type "C:\PointBat\!%p%DTfin.txt" >> "C:\PointBat\%p%.txt"
 
if exist "C:\PointBat\!%p%*.*" del "C:\PointBat\!%p%*.*" > nul
 
:finfin

n°254537
olivierb
Posté le 17-04-2001 à 17:59:53  profilanswer
 

:pt1cable:  
bon ,eh bien il est 18 heures,tout est dit..on peut aller boire une bière....a vot'santé
 :pt1cable:  
euh GOTO çà veut dire quoi? :??:

n°254543
Modos
Festina lente
Posté le 17-04-2001 à 18:13:34  profilanswer
 

Tu fais de l'humour la  ???


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software

  Question pointue sur le batch

 

Sujets relatifs
questionun petit batch
Question conne : comment on installe tweak UI ?question EXCEL (qui m'agace)
Question sur communications entre cablés et modem classique...une question comme ca sur 3Dmark2001?
question bete pour lan isdnQuestion FT et ADSL Xtense 500
Question con sur Flash... 
Plus de sujets relatifs à : Question pointue sur le batch


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR