Résolu Explications Commandes Batch

saldek3

Nouveau membre
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...

:OPTIONS
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 :OPTIONS

: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 :OPTIONS

: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 :OPTIONS

: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 :OPTIONS

: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 :OPTIONS

: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
 

AccroPC2

Fou du PC
Staff
Hello,

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

Code:
:OPTIONS

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

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.
 

saldek3

Nouveau membre
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...
 

AccroPC2

Fou du PC
Staff
Meilleure réponse
Re,

Remplace
Code:
echo .
par
Code:
echo
ou
Code:
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
Code:
 *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 ""
Code:
 "" == "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
 

yvoline

Habitué
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++ ...
 

AccroPC2

Fou du PC
Staff
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
 

yvoline

Habitué
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 ^^ )
 

saldek3

Nouveau membre
Bonjour, désolé de ma réponse tardive mais tout fonctionne parfaitement. Je tien a vous remercier!!!!
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 822
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut