TUTORIEL BASIQUE AU LANGAGE BAT

PAR MATTIAS REFEYTON

1) Introduction

Le langage BAT est très peu utilisé de nos jours. Il s'exécute dans l'Invite de Commande (aussi appelée CMD) et son rôle premier était la gestion et l'ouverture des fichiers car l'Explorateur Windows n'existait pas encore, et on ne disposait que de MS-DOS pour ouvrir et gérer les fichiers et leur contenu. Dans ce tutoriel, vous apprendrez les commandes de base de ce langage. J'apellerais l'Invite de Commandes CMD.

2) Principes de base

2.1) Commandes principales

Commande Effet Syntaxe
echo/echo.
Affiche un texte sans/avec espace devant
echo texte/echo. texte
pause
Attend la pression sur une touche
pause
localhost
Attend "nombre" secondes - 1
ping localhost -n "nombre" >nul
start
Lance l'application "programme.exe"
start "programme.exe"
taskkill
Met fin à l'application en cours "programme.exe"
taskkill "programme.exe"
@echo off
Empêche l'affichage du nom de l'utilisateur (en début de programme)
@echo off
if
Teste une affiramtion
"a1"
et exécute
"a2"
si elle est vraie
if "a1" (
   "a2"
   )
else
En association avec
if
, exécute
"a3"
si
"a1" est faux
if "a1" (
   "a2"
   ) else (
   "a3"
   )
set
Enregistre la variable de valeur "v2" sous le nom "v1"
set "v1"="v2"
rem
::
Permet d'écrire un commentaire non pris en compte dans l'exécution du programme
rem "commentaire"
GOTO
Renvoie l'exécution d'un programme à un point marqué par une étiquette (représentée par un nom seul sur une ligne précédé du caractère : ) voir 3) Exemples de programmes
exit
Sort de la CMD. À mettre à la toute fin d'un programme.
(programme)
exit

2.2) Méthode d'édition, d'enregistrement et d'exécution

Vous pouvez rédiger un programme BAT avec n'importe quel traitement de texte. Il n'y a pas besoin de compilateur pour l'exécuter. Je recommande l'utilisation du Notepad, application simpliste disposant du minimum nécéssaire. Une fois le programme entré, enregistrez-le avec l'extension .bat Pour le lancer, double-cliquez dessus ou entrez son path dans la CMD.

2.3) Attributs de SET

La fonction SET est très importante. Elle permet la gestion/enregistrement des variables.
Attribut Utilité Syntaxe
SET
Affiche les variables pré-définies
SET
SET "chaîne de caractères"
Affiche le nom et la valeur de toutes les variables dont le nom commence par "chaîne de caractères"
SET "chaîne de caractères"
SET /A
Indique que la valeur de la variable est un calcul. SET calcule le résultat et le stocke sous le nom défini
SET /A "nom"="expression numérique"
SET /P
Attend que l'utilisateur entre une chaîne de caractères et la valide avec ENTREE. SET stocke cette chaîne (appelée ChaîneInvite) sous le nom défini.
SET /P "nom"="texte à afficher auquel l'utilisateur doit répondre, souvent question"

2.4) Utilisation de la commande LOCALHOST

La commande LOCALHOST sert à attendre un certain nombre de secondes. Elle est particulière dans sa syntaxe. En effet, on l'utiliseras de la facon suivante :
ping localhost -n "nombre" >nul
Dans cet exemple, remplacez "nombre" par un nombre de votre choix. En fait, "nombre" représente le nombre de secondes à attendre moins une seconde. Par exemple, pour attendre 3 secondes, on écrira :
ping localhost -n 4 >nul

3) Exemples de programmes

Dans ce chapitre, les codes des programmes sont donnés et expliqués et les fonctions sont écrites en majuscules.

EXEMPLE 1 : Afficher une question et afficher un texte selon la réponse
@ECHO OFF                                             REM Empêche l'affichage du nom d'utilisateur.
SET /P choix=Salut, ca va ? (oui/non)                 REM Attends que l'utilisateur saisisse une ChaîneInvite et appelle cette chaîne "choix".
IF %choix%==oui (                                     REM Teste "choix" et si choix=oui,
ECHO Ok tant mieux.                                   REM Affiche "Ok tant mieux.".
PAUSE                                                 REM Attends que l'utilisateur appuie sur une touche.
) ELSE (                                              REM (Fin de la clause IF.) Sinon,
ECHO Bon tant pis.                                    REM Affiche "Bon tant pis.".
PAUSE                                                 REM Attends que l'utilisateur appuie sur une touche.
)                                                     REM Fin de la clause ELSE
EXIT                                                  REM Sort de la CMD
Dans ce programme, l'attribut /P (à côté de SET) signifie que la valeur de "choix" est égale à la chaîne de caractères entrée par l'utilisateur. En d'autres termes, cela signifie que l'ordinateur attend que vous entriez un mot et que vous appuyiez sur ENTREE pour mettre ce mot dans une variable et l'appeler "choix". D'autre part, on s'attends aussi à ce que l'utilisateur entre "oui" ou "non". Les %% de la clause IF (IF %choix%==oui) sont là pour tester la valeur de la variable "choix" (si on n'avait pas mis %choix% , c'est le nom qui aurait été évalué, et le programme ne voudrait plus rien dire).

EXEMPLE 2 : Calculer le carré du nombre 54.
@ECHO OFF                                             REM Empêche l'affichage du nom d'utilisateur.
SET nombre=54                                         REM Créé la variable "nombre" de valeur 54.
SET /A carrenombre=nombre*nombre                      REM Calcule "nombre" fois "nombre" et enregistre le résultat sous le nom "carrenombre".
SET carrenombre                                       REM Affiche la valeur de toutes les variables dont le nom commence par "carrenombre" (ici, il n'y en a qu'une).
PAUSE                                                 REM Attends que l'utilisateur appuie sur une touche.
EXIT                                                  REM Sort de la CMD
Dans ce programme, on se sert de la fonction SET pour :
  1. Stocker le nombre 54 (dont on veut calculer le carré) dans la variable "nombre".
  2. Stocker la valeur (grâce à SET /A) de "nombre" fois "nombre" dans la variable "carrenombre".
  3. Afficher la valeur de toutes les variables dont le nom commence par "carrenombre" (grâce à SET sans attributs), sachant qu'il n'y en a qu'une.
EXEMPLE 3 : Exécuter une action jusqu'à un certain moment. Nous allons nous servir de la fonction GOTO pour créer un "petit jeu" : deviner un nombre entre 1 et 100.
@ECHO OFF                                             REM Empêche l'affichage du nom d'utilisateur.
:debut                                                REM Place l'étiquette nécessaire à l'exécution de GOTO.
SET chff="nombre à deviner"                           REM Stocke le nombre à deviner dans "chff", qui, par fair-play, doit être entre 1 et 100.
SET /P nbr=Entrez un nombre entre 1 et 100.           REM Fais entrer un nombre et le stocke sous le nom "nbr".
IF %nbr% LSS %chff% (                                 REM Teste si "nbr" est plus petit que chff.
ECHO. Le chiffre est trop petit.                      REM Si oui, affiche "Le nombre est trop petit".
PING LOCALHOST -n 3 >nul                              REM Attend 2 secondes.
GOTO :debut                                           REM Renvoie l'exécution du programme à l'endroit de l'étiquette.
) ELSE (                                              REM Si "nbr" n'est pas plus petit que "chff",
IF %nbr% GTR %chff% (                                 REM Teste si "nbr" est plus grand que "chff".
ECHO. Le chiffre est trop grand.                      REM Affiche "Le nombre est trop grand".
PING LOCALHOST -n 3 >nul                              REM Attend 2 secondes.
GOTO :debut                                           REM Renvoie l'exécution du programme à l'endroit de l'étiquette.
) ELSE (                                              REM Si "nbr" n'est pas plus grand que "chff",
IF %nbr%==%chff% (                                    REM Teste si "nbr" est égal à "chff" (logiquement, oui)
ECHO. Felicitations, c'est ca !                       REM Le texte est assez clair !
PING LOCALHOST -n 3 >nul                              REM Attend 2 secondes.
)
EXIT                                                  REM Sort de la CMD.
Je résume ce qui se passe à l'écran pendant le programme :
  1. Affiche "Entrez un nombre entre 1 et 100."
  2. Selon le résultat de la comparaison entre le nombre entré et le nombre prédéfini, un texte s'affiche.
  3. Grâce à GOTO , recommence les étapes 1 et 2 jusqu'à ce que vous ayez trouvé le bon nombre

4) Pour le fun

Cliquez sur ce lien pour voir la suite.