Apprendre le Batch :
Les sauts avec goto !




Goto, c'est une commande très très souvent rejetée des programmeurs de d'autres langages car elle mord tout ce qui se trouve sur son passage rendrait le code illisible et on pourrait théoriquement s'en passer , mais voilà en batch c'est différent :--

Euh, rassurez-vous hein :lol:, en fait en Batch comme on a moins de possibilités, il nous sera plus pratique d'utiliser cette commande (vous verrez tout l'intêret dans le prochain chapitre qui est un très gros chapitre).

Ce chapitre sera un petit chapitre car je comptais faire le prochain maintenant mais finalement après réflexion je pense que je devais d'abord caser celui-là ;)

Ok super c'est cool mais à quoi sert donc goto ?

Imaginons que vous ayez besoin de faire un saut dans le programme (c'est à dire passer d'un bout à l'autre du code en un clin d'oeil), et bien goto est fait pour vous mais à utiliser avec modération (ouais car effectivement un code avec 30 goto dedans ça devient légerement chiant à lire :-/).
Pour utiliser goto, il faut crée un label puis y accéder.


1) Créer un label

Syntaxe :
:label
Rien de bien compliqué, il y a toujours deux points au début et, sans espaces, un nom qui de préférence ne contient que des caractères alpha-numériques (comme les variables quoi).

Vous vous demandez surement ce qu'est un label (ou peut-être que vous vous en foutez) ? Eh bien un label est une sorte d'empreinte inscrite dans le code.
Prenons l'exemple du livre : dans un livre vous pouvez mettre des marques-pages pour accéder directement à un endroit du livre ! Pareil pour un label.

Un label en soit ne fait absolument rien à l'interprétation (tout comme les commentaires que l'on fait avec REM pour ceux qui auraient oublié;), il servira juste de repère au goto.

Donc ceci :
@echo off

echo Coucou !
:label_1
echo J'ai cree un label mais t'as rien vu !

pause>nul

Donne juste :
Coucou !
J'ai cree un label mais t'as rien vu !


Maintenant utilisons ce label :D

2) Faire un saut

Syntaxe :
goto label

goto ("go to" qui veut dire en français : "aller à" ) pour faire le saut et label doit être rigoureusement le nom du label crée. Si le label n'existe pas, rien ne se passera.

Un exemple :
@echo off

echo Je pense que tu es :

goto mecSympa

echo Un feignant
echo Un parasite
echo Un dormeur
echo Un somnanbule
echo Un serial killer

:mecSympa

echo Un mec sympa

pause>nul

Donnera :
Je pense que tu es :
Un mec sympa


Pratique hein :)

Voila ce qu'il s'est passé : dès que l'interpréteur est arrivé à la ligne goto mecSympa, il a immédiatement recherché un label au nom de mecSympa (les majuscules/minuscules ne sont pas importantes) et "s'est téléporté" jusqu'à ce label pour continuer sa route.

Par contre l'intérêt est très limité car il s'agit de sauts inconditionnels, c'est à dire que ça saute comme ça sans aucunes conditions mais dès le prochain chapitre vous allez voir toute la magie de la chose.

Une dernière chose avant de finir ce chapitre, je vais rapidement parler des boucles infinies.
Une boucle infinie, c'est ça : (n'exécutez pas ce code )
@echo off

:haha
echo J'AI FAIM !
goto haha

pause>nul

Si vous avez tout suivis, vous devez comprendre que arrivé à goto, on reviens au début jusqu'à, à nouveau, rencontrer le goto etc.. C'est un truc à éviter quoi :cool:

Voila, ce bref chapitre est terminé et laisse place au prochain chapitre qui va nous faire avancer d'un grand pas : Les conditions.

Utilisateurs d'AdBlock et autres : Par pitié désactivez AdBlock, vous détruisez mon unique source de revenue et un jour, tous les petits sites comme celui-là n'existeront plus mais il sera trop tard. Prenez conscience de ceci et faites un geste, merci.

Il y a 5 personnes sur le site.
Chargement de la page avec 2 requêtes MySQL en 0.2314 seconde(s).

Site et design crées par Yoshito (Webmaster)
© 2006-2008 - www.ToutLeDOS.com - Tous droits réservés

Sans oublier...
Les ressources - Contact - FauxVirus.com