| |||||
| Dernière réponse | |
|---|---|
| Sujet : Question pointue sur le batch | |
| Modos | Tu fais de l'humour la ??? |
| Aperçu |
|---|
| 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 ??? |




