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

 


Dernière réponse
Sujet : Question pointue sur le batch
Modos Tu fais de l'humour la  ???

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Modos Tu fais de l'humour la  ???
olivierb :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? :??:
Modos 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
JPA 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+
Modos 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) ?
olivierb 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
Modos Je comprend pas bien olivierb, as-tu essayé le code de JPA, il ne renvoie pas d'erreur en cas de mauvais caractère !!!
olivierb 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:
Modos 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
bruno31 CHOICE emet un signal sonore ...
 
SONORE pas de renvoi E/S ...
 
Ton choice attendra un choix valide.
Modos 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
olivierb :pt1cable:  
le signe = ne sert à rien,peut-ette même a planter...
olivierb :)  
IF ERRORLEVEL=255 goto erreur
 :jap:
Modos Ce que je voudrais, c'est que choice renvoie une erreur quand je tape une autre lettre que celle qui est dans les choix
JPA Précise ton besoin : si choice permet de forcer les caractères autorisés, où est le problème ?
Modos 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
JPA 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...
Modos 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 ???

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)