Votre question
Résolu

Explications Commandes Batch

Tags :
  • Programmation
  • Echo
Dernière réponse : dans Programmation
9 Février 2018 11:59:30

Bonjour a tous...

j'ai cherché un peux partout une commande qui ne ferme pas le batch quand j’écris une phrase... En gros j'ai des choix de 1 a 6 mais je voudrais pouvoir écrire librement sans que le batch se ferme. Si je mets un mot pas de soucis, je peut choisir un numéro par la suite, par contre si je mets deux ou plus avec des espaces celui ci ce ferme, et je voudrais éviter cela. le texte de la centrale na aucun lien, c'est uniquement pour le test...
Voici le code:

@echo off
cls

color 2

echo Voici l'histoire de Sibérie ou une centrale nucléaire est sur le point de fusionner...

:o PTIONS
set/p "cho=>"
if %cho%==0 goto 0
if %cho%==1 goto 1
if %cho%==2 goto 2
if %cho%==3 goto 3
if %cho%==4 goto 4
if %cho%==5 goto 5
if %cho%==6 goto 6
echo .
goto OPTIONS

:1
echo.
start error.wav
echo Cette centrale est située près de la ville de Bilibino dans le district autonome russe de la Tchoukotka
echo.
goto :o PTIONS

:2
echo.
start error.wav
echo La centrale de Bilibino se compose de 4 petits réacteurs mixtes du type TF U-graphite (tubes de force U-graphite). Ces réacteurs produisent à la fois de l'énergie thermique et électrique pour 12 MWe chacun
echo.
goto :o PTIONS

:3
echo.
start error.wav
echo La centrale est construite sur le Pergélisol (permafrost en anglais)
echo.
goto OPTIONS

:4
echo.
start error.wav
echo ce qui rend les fondations potentiellement instables, mais le sujet est classé comme confidentiel
echo.
goto :o PTIONS

:5
echo.
start error.wav
echo Elle est située au nord du cercle polaire arctique, à une distance de 653 km au nord-ouest de la ville d'Anadyr capitale du district
echo.
goto :o PTIONS

:6
echo.
start error.wav
echo Les journalistes n'ont pas accès au site. Rosat est le seul organe qui assure la communication du site.
echo.
goto :o PTIONS

:END


j'ai penser a un variable du genre if %cho%=="" goto OPTIONS mais ça fonctionne pas

Je découvre la "programmation" depuis quelques jours avec les commandes batch, du coup je sèche un peu...
Merci pour votre aide

Autres pages sur : explications commandes batch

a b L Programmation
9 Février 2018 13:24:39

Hello,

Peut-être est-ce cela que tu veux faire :

  1. :OPTIONS
  2.  
  3. set /p "cho=>"
  4. if "%cho%"=="0" goto 0
  5. if "%cho%"=="1" goto 1
  6. if "%cho%"=="2" goto 2
  7. if "%cho%"=="3" goto 3
  8. if "%cho%"=="4" goto 4
  9. if "%cho%"=="5" goto 5
  10. if "%cho%"=="6" goto 6
  11. echo .
  12. goto :OPTIONS


Ne passe pas trop de temps sur les commandes shell ( c'est plus du scripting que de la programmation ), utilise plutôt de vrais langages si tu comptes faire de la programmation.
m
0
l
9 Février 2018 14:27:49

Merci beaucoup, c'est grâce au guillemets? Je ne comprend pas pourquoi? mais en tout cas merci beaucoup. Une dernière petite question.. existe t'il un caractère ou autre chose qui permet de modifier le "echo . " pour que le point n’apparaisse pas?

A vrai dire c'est le premier test que je fais. Je sais pas quel langage est mieux pour commencer...
m
0
l
Contenus similaires

Meilleure solution

a b L Programmation
9 Février 2018 14:40:44

Re,

Remplace
  1. echo .
par
  1. echo
ou
  1. echo ""


En fait tes variables sont substituées au moment de l'execution ce qui fait que si %cho% ne est vide ( ou un espace qu'on va noter *rien* ) cela revient à écrire
  1. *rien* == une_valeur

Cette syntaxe n'est pas valide puisqu'on a rien à la gauche de l'opérateur. D'où l'exception par contre on sait tester la chaine vide ""
  1. "" == "une_valeur"


Quant au choix du langage, cela dépend principalement de ce que tu souhaites faire, on peut citer : C,C++,C#,Go,Python,Perl,Ruby,Java,Scala

Bye
partage
9 Février 2018 16:31:19

Salut,

Et le Pascal, personne n'y pense jamais au Pascal, pourtant c'est très bien pour commencer et assez facile de faire la transition en C++ ...
m
0
l
a b L Programmation
9 Février 2018 17:51:09

Je ne prétendais pas lister tous les langages de programmation, seulement les plus connus. J'en ai fait au lycée du Pascal et en dehors de l'école, je n'en ai jamais revu.

Bye
m
0
l
9 Février 2018 20:09:39

Justement c'est pas pour rien qu'on l'apprend à l'école. C'est beaucoup plus rigoureux que le C tout en étant très similaire . Ca permet de mieux saisir les bases là ou le C est tellement permissif qu'avoir une erreur de compilation est un miracle ^^

En plus avec Lazarus gratuit et cross platform , que demande le peuple :D  (oui je milite pour une retour du Pascal en force ^^ )
m
0
l
14 Février 2018 10:42:31

Bonjour, désolé de ma réponse tardive mais tout fonctionne parfaitement. Je tien a vous remercier!!!!
m
0
l