Comment créer un programme batch avec des fonctions prédéfinies

Bonjour a tous !

Aujourd’hui vous allez créer votre premier programme en BATCH :-)

Pour ceux qui n’ont pas lu mon premier tuto’ sur le CMD,  il est disponible ici !

Bon, vous allez avoir besoin :

-De votre éditeur de texte préféré (Notepad,++, bloc-note etc).

-De votre cerveau (actif de préférence)

Pour ce qui est de l’éditeur, par soucis de compréhension je vais opter pour Notepad ++.

Niveau de difficulté:

Avant toute chose, je ne sais pas si vous avez lu dans quel endroit est situé ce tutoriel mais moi je lis Windows donc pas Mac ni Linux ok  ?  :-).

Le Ms-dos ne marche que sur du Windows !

Ici, pas de sommaire ni rien, on rentre directement dans le vif du sujet.

Bon pour ce premier cours-TP de création de batch, je vous propose de programmer pour arriver à ça :

[Image: bat.png]

Bien sûr, vous avez le droit de le faire en moins moche ;-)

Vous avez bien lu ! L’extension ici n’est pas .bat, ni .cmd, mais .exe. Je vous expliquerai comment faire dans un autre tutoriel ;-) !

Je vous propose donc un petit utilitaire qui, dans un premier temps peut vous désactiver votre réseau (ré-écrire l’ipà 0.0.0.0) et le ré-activer (à quoi ça sert ? A rien ^^ ). Ici, pas de réparation, un peu complexe pour vous encore mais cela ne serait tarder ^^.

Cet utilitaire est composé :

- D’une fenêtre de titre

- D’un menu à quatre choix

Visuellement, c’est à peu prêt tout.

Alors :

Programmer en batch c’est :

écrire une commande

écrire une autre commande

etc. !

L’invite de commande va donc les exécuter une par une !

Par convention, il ne faut pas que l’utilisateur voient toutes les commandes s’exécuter. Il faut cacher ce qui est technique afin de laisser une « interface visuelle » a l’utilisateur.

Petit exemple :

Vous allez écrire ce qui suit dans votre éditeur de texte puis le sauvegarder en « mon_premier_bat.bat (ou .cmd) » et enfin, l’exécuter.

Code :
title Mon premier Bat
echo Hello World !
pause

Vous l’aurez compris, c’est vraiment moche ^^

En passant vous avez exécuté trois commandes !

title: Qui donne un titre a votre application
echo: Qui affiche le texte écrit à côté
pause: Qui demande à l’utilisateur d’appuyer sur un bouton dès qu’il est prêt.

Mais au fait, pourquoi mettre une pause ?

C’est tout simple, si on ne met pas de pause, le CMD va interpréter le code puis s’arrêter, coupant ainsi la fenêtre (1ms pour voir Hello World c’est pas terrible ^^).  Essayez donc !

Maintenant, on va masquer les commandes et afficher ce dont on veut ! (et toucher à la commande pause).

Recopiez ce code à la place de l’ancien, refaites la manipulation habituelle et voyez !

Code :
@echo off
title Mon premier Bat
echo Hello World !
pause>null

Normalement, l’affichage devrait être moins chargé et plus lisible non ?

C’est grâce à la commande :

@echo off: elle masque tout ce qui est fonction et ordre d’exécution

Mais pourquoi ta changé pause en pause>null ????.

Pause est une commande qui affiche du texte (appuyez sur une touche pour continuer) certes, pause est masqué mais pas son texte donc si vous trouvez cela un peu laid (le texte hein^^) ajoutez >null pour le masquer !

Maintenant qu’on a un code propre, on va créer un cadre et une présentation à l’intérieur !.

Techniquement on ne peut pas créer un cadre comme on ferais avec Html etc. !

Il faut le faire morceau par morceau !

Des symboles en batch sont interprétés autrement, il s’agit de l’encodage !

Exemple : ¼ fait un coin pour le tableau !

Je vous ai donc fait une légende :

Ì = Intersection Gauche
¹ = Intersection Droite
É = Coin haut gauche
» = Coin haut droit
È = Coin bas gauche
¼ = Coin bas droit
º = Barres verticales

Vous pourrez vous amuser à le personnaliser mais pour l’instant je vais vous donner un cadre prédéfini.

Code :
@echo off
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º          Relanceur d'IP      º
echo º                              º
echo º          Par   MON NOM       º
echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo º                              º
echo º                              º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
pause >nul

Attention ! Il faut que tout sois aligné (si le cadre dépasse etc.; trouvez le symbole qui est décalé).

J’ai laissé un cadre vide en dessous ! Ce sera pour notre menu à trois choix :

Désactiver l’ip
Activer l’ip
Quitter

Mais avant je vais vous montrer comment on fait un menu.

Tout d’abord, le code fonctionnel qu’on va par la suite décortiquer ^^ sinon vous n’allez rien apprendre.

Code :
@echo off
Title Relanceur d'ip
:debut
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º          Relanceur d'IP      º
echo º                              º
echo º          Par   MON NOM       º
echo ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo º 1. Desactiver l'adresse ip   º
echo º 2.  Activer l'adresse ip     º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo Sinon tapez q pour quitter.
echo.
echo Votre selection ?
set /P choix=

if %choix%==1 (
ipconfig /release
echo Termine !
pause>null
goto end
)

if %choix%==2 (
ipconfig /renew
echo Termine !
pause>null
goto end
)

if %choix%==q (
exit
)

:end
cls
goto debut

Bon, on commence !

@echo off : Vous l’aurez deviné, il masque tout ce qui est commande d’exécution
title : donne un titre à la fenêtre dos
debut: J’aime les appeler « marqueurs » ils permettent d’effectuer un éventuel retour à cet endroit (vous verrez).

Juste en dessous, le cadre composé d’une partie titre et en dessous d’une partie « proposition des options ».

ATTENTION, le code inséré ici déforme la position des symboles donc si vous faites un copié coller (je ne le conseille pas) modifiez manuellement la position de ceux-ci.

echo.  : non ca n’affichera pas un point cette fois, c’est pour créer un espace (<br/> en html).

set /P choix= : ah , ici c’est la commande qui va s’occuper de récupérer votre choix (1,2 ou q) et le stocker dans la variable choix. Bien sur, vous pouvez changer le nom de cette variable mais il va falloir le modifier dans tout le code aussi.

Pour ce qui va suivre, je vais seulement vous montrer une seule condition (les autres étant formées pareil !)

Code :
if %choix%==1 (
ipconfig /release
echo Termine !
pause>null
goto end
)

if %choix%==1 ( : if peut être traduit pas SI, le choix entre % et % affiche la variable choix ! Variable qui a été entrée juste au-dessus.

Donc en français : SI la variable choix est égal à 1 : on exécute la commande ipconfig/release qui va rendre votre adresse ip nulle (sous la forme 0.0.0.0) donc plus d’internet (rassurez vous, l’autre option redonne votre adresse d’origine).

Puis on affiche « Termine ! »

Euuh mais pourquoi ta pas écris Terminé ?????

Hein ? Je vous l’ai pas dit ? Ah bon… ok alors un des (nombreux) point négatifs de l’invite de commande (CMD) c’est qu’il ne peut pas afficher le caractère é ! c’est encore une question d’encodage, donc n’écrivez pas ce caractère sinon il se transformera en symbole ú.

goto end : Ah ! Cette fonction nous redirige au marqueur end ^^, qui est a la fin du code !

Et n’oubliez pas de fermer la parenthèse la la fin de votre IF !

Code :
if %choix%==q (
exit
)

exit : ferme la fenêtre et coupe donc le programme ^^

Dernière partie du code !

Code :
:end
cls
goto debut

Bon, ici on a :

Le marqueur end qui est utilisé par les deux IF donc :  à la fin de chaque if, on est redirigé vers end (goto end = aller à end).

cls : efface tout ce qu’il y a marqué sur la fenêtre !
et après :
on est re-redirigé vers début (goto debut) qui contient le menu !

Essayez !

Voila ! C’est fini pour la partie fonctionnelle !

Maintenant faudrait soigner l’esthétisme (ou pas).

La couleur.
La dimension de la fenêtre.

La couleur

La fonction color permet de modifier la couleur de la fenêtre et de l’écriture !

Forme de cette commande :
color XX

Je vous donne une légende :

Code :
0 = Noir    8 = Gris
1 = Bleu    9 = Bleu clair
2 = Vert    A = Vert clair
3 = Eau     B = Eau clair
4 = Rouge    C = Rouge clair
5 = Violet    D = Violet clair
6 = Jaune    E = Jaune clair
7 = Blanc    F = Blanc... clair ! ^^

C’est facile :

color 7D : affichera une écriture blanche sur fond violet !
color 4A : affichera une écriture rouge sur fond vert claire !
etc..

La dimension de la fenêtre

Le mini-programme est vraiment mini ^^
Donc on va redimensionner la fenêtre.

Code :
mode con cols=AA lines=BB

(code à placer de préférence au début).

Ici presque rien à savoir, seulement que cols est la largeur et que lines est la largeur !

Ici je vous facilite le boulot !

mode con cols=40 lines=13
Si vous avez écris tout ce que j’ai écris la dimension devrait être bonne, sinon modifiez cols et lignes !

Au final vous devriez obtenir ceci (sauf modifications) :

[Image: bat_final.png]

L’utilitaire batch est disponible  ==> ici

Voila Voila, merci de m’avoir lu !

Si vous avez des questions n’hésitez pas à venir sur la discution du forum ici


Envie de faire la promotion de votre site sur Titotuto ? C'est possible en cliquant sur un des carrés ci-dessus !


Partenaires : Forum jeunes | vidéo bricolage | Buzzdays.INFO

Notre site Titotuto est listé dans la catégorie Web designer : Aides et tutoriels création web de l'annuaire Youtube music