0% ont trouvé ce document utile (0 vote)
212 vues24 pages

La Programmation Batch

Le document explique la programmation batch, qui consiste en l'utilisation de fichiers texte contenant des commandes MS-DOS pour automatiser des tâches répétitives. Il aborde la création de fichiers batch, l'utilisation de variables, les opérations mathématiques simples, ainsi que des structures de contrôle comme les boucles et les conditions. Enfin, il présente des fonctions avancées telles que les étiquettes, les tests sur fichiers et la fonction FOR pour parcourir des lignes dans un fichier.

Transféré par

tidjanendiaye
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
212 vues24 pages

La Programmation Batch

Le document explique la programmation batch, qui consiste en l'utilisation de fichiers texte contenant des commandes MS-DOS pour automatiser des tâches répétitives. Il aborde la création de fichiers batch, l'utilisation de variables, les opérations mathématiques simples, ainsi que des structures de contrôle comme les boucles et les conditions. Enfin, il présente des fonctions avancées telles que les étiquettes, les tests sur fichiers et la fonction FOR pour parcourir des lignes dans un fichier.

Transféré par

tidjanendiaye
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

PRATIQUE DES SE

6 LA PROGRAMMATION BATCH

7
ISM : LIAGE
Introduction

Basiquement, un fichier Batch n'est rien de plus qu'un fichier texte


contenant des commandes MS-DOS, et possédant le suffixe ".bat".
En fait, un fichier Batch contient simplement une suite de
commandes que vous pourriez taper sous l'invité (prompt) du DOS,
chaque nouvelle ligne du fichier correspondant à une nouvelle
commande. Néanmoins, certaines commandes ne sont
qu'utilisables dans
les fichiers batch du fait de leur inutilité dans l'environnement de
commande DOS.
Leur utilité est, par exemple, quand il faut répéter toujours la même
série de commandes. À titre d'exemple, nous pourrions évoquer le
changement de répertoire et peut-être aussi la commande FORMAT
qu'on fait souvent suivre de la commande CHKDSK pour vérifier si
la disquette a bien été formatée.
Exemple :
Imaginons un fichier batch contenant les commandes suivantes :
 cd \
 cd games
 superjeu.exe
Cela aurait le même effet que si vous tapiez sous DOS les commandes suivantes :
 C:\Chemin> cd \ [Entrée]
 C:\> cd games [Entrée]
 C:\games> superjeu.exe [Entrée]
L'intérêt des batch est donc d'automatiser des tâches répétitives effectuées sous DOS.
Les fichiers batch sont donc très faciles à créer puisqu'un simple éditeur texte suffit
(Comme EDIT, sous DOS)
Les fichiers batch peuvent également utiliser toutes les commandes DOS, ce qui rend
disponible pour le programmeur un grand nombre de fonctions.
Enfin, leur taille est relativement légère par rapport à d'autres programmes, ce qui
facilite leur "transferts" sur différents disques et supports de stockage.
 Le langage Batch n'est pas compilé, il est interprété par COMMAND.COM ce
qui rend plus lent l'exécution de programmes batch par rapport à des
applications écrites directement en langage machine,
 · Les fichiers Batch sont directement éditables, donc votre code n'est pas
"protégé" à la copie par d'autres programmeurs,
 · Enfin, et surtout, des opérations élémentaires telles que le traitement de
chaînes de caractères, d'opérations mathématiques, etc… n'existent pas sous
DOS, ce qui implique l'usage de programmes externes (s'ils existent, selon les
cas).
Création du fichier Batch "Hello Liage 1"
 Nous allons nous atteler à la programmation d'un fichier affichant à l'écran
"Hello Liage 1" en langage Batch.
 Dans l’éditeur de votre choix, tapez :
@echo off
cls
rem Ceci est une remarque.
:: Ceci est un commentaire.
echo Hello Liage 1 !!!!
echo.
pause
Étudions la composition du script 1. La première ligne, @echo off, est déjà
intéressante, elle est composée :
•du préfixe @ qui sert à inverser l'état de l'affichage standard ;
•de la commande echo qui sert à gérer l'affichage en ligne de commande ;
•et du paramètre off qui sert à désactiver l'affichage standard.
L'affichage standard définit ce que l'interpréteur de commande affiche par défaut. Par
exemple lors du lancement de l'interpréteur de commande ci-dessous ; l'affichage
standard renvoie le chemin d'accès du répertoire courant.
Les Variables
• Définition d'une variable
• Demande de valeur à l'utilisateur
• Les variables d'environnements
• Découpage d'une variable
• Calculs simple avec des variables
Définition et utilisation d'une variable
Une variable permet de stocker une donnée indiquée, à tous
moment dans le script on pourra faire appel à elle.
rem désactive l'affichage des commandes
echo off
rem remise à blanc de l'écran
cls
rem définition de la valeur de la variable
set variable=1
rem affiche du texte en rappelant la variable grâce aux %
echo la valeur de la variable est %variable%
rem arrêt
pause
L'appel de la variable, se fait en plaçant des % autour du nom de la variable.
Demande de valeur à l'utilisateur
Il semble intéressant d'interagir avec l'utilisateur en demandant
une variable. Cela est possible grâce à l'utilisation du paramètre
"/p", passer à la commande set, comme nous le montre cet
exemple:
rem désactive l'affichage des commandes
echo off
rem remise à blanc de l'écran
cls
rem le /p permet de demander le retour de la variable
set /p prenom= Quel est votre prenom :
rem remise à blanc
cls
rem affiche le texte avec la variable rentrée
echo Ca va %prenom%, tu a un joli prenom :-)
rem arrêt
pause
Les variables d'environnement
Nous avons vu comment définir des variables, en demandant à
l'utilisateur, mais Windows possède un certain nombre de variables
déjà renseignées, concernant votre système.
Pour tester vous pouvez essayer ce script.
rem désactive l'affichage des commandes
echo off
rem remise à blanc de l'écran
cls
rem liste des variables
echo Salut %USERNAME%,nous sommes le %DATE%
echo il est %Time% déja!,
echo %RANDOM% est un chiffre aléatoire.
echo Ton PC se nomme %COMPUTERNAME%,
echo il possède %NUMBER_OF_PROCESSORS% processeur,
echo c'est une architecture %PROCESSOR_IDENTIFIER%
rem arrêt
pause
Liste des variables d'environnement:
ALLUSERSPROFILE PROCESSOR_REVISION
APPDATA ProgramFiles
CLASSPATH PROMPT
CommonProgramFiles
QTJAVA
COMPUTERNAME=
SESSIONNAME
ComSpec
SystemDrive
DEVMGR_SHOW_DETAILS
SystemRoot
FP_NO_HOST_CHECK
TEMP
HOMEDRIVE
TMP
HOMEPATH
USERDOMAIN
LOGONSERVER
USERNAME
NUMBER_OF_PROCESSORS USERPROFILE
OS windir
Path DATE
PATHEXT TIME
PROCESSOR_ARCHITECTURE CD
PROCESSOR_IDENTIFIER RANDOM
PROCESSOR_LEVEL ERRORLEVEL
CMDEXTVERSION
CMDCMDLINE
Découpage d'une variable
L'interêt de découper une variable est d'extraire certaines parties afin de les retraiter.

Principe:
Prenons la variable d'environnement %ProgramFiles%
echo %ProgramFiles% donne C:\Program Files
Désormais nous souhaitons conserver uniquement le lecteur "c:\"
echo %ProgramFiles:~0,3%
On observe que l'ajout du ":~" qui indique le découpage, les valeurs suivantes "0,3"
indiquent comment la découper. En effet le 0 indique que le début de la sélection est le
0eme caractère, le 3 indique qu'elle s'arrête au 3eme.
Autre solution possible, par suppression de caractères:
echo %ProgramFiles:~,-13%
Conservons désormais le nom du dossier "Program Files" uniquement
echo %ProgramFiles:~3,13%
echo %ProgramFiles:~3%
EXEMPLE:
rem désactive l'affichage des commandes
@echo off
rem remise à blanc de l'écran
cls
echo variable de base date: %date%
rem découpage %date:~0,2%
rem 1er chiffre numéro du caractère de début de la
sélection
rem 2eme chiffre nombre de caractères après le début
echo Nous sommes le %date:~0,2% le %date:~3,2%eme
mois de l'année %date:~6,4%
rem arrêt
pause
Calculs simple avec des variables
Grâce aux batch il est possible de faire des opérations simples telle qu'une
addition, soustraction, multiplication ou encore division. Cela est possible
avec la commande set /a.
@echo off
echo Addition
set /a add = 5+5
echo 5 + 5 = %add%
echo.
echo Soustraction
set /a sous = 10-5
echo 10 - 5 = %sous%
echo.
echo Division
set /a div = 10/2
echo 10 / 2 = %div%
echo.
echo Multiplication
set /a mult = 10*2
echo 10 * 2 = %mult%
pause
Il est possible de donner des priorités aux
opérations grâce aux parenthèses.

@echo off

echo Priorité opératoire


set /a pri = ((10*5)*2 + (10*5)*2)/2
echo ((10*5)*2 + (10*5)*2)/2 = %pri%
Fonctions
Les fonctions dans les scripts permettent d'augmenter
considérablement les possibilités des batchs.

Les étiquettes
Fonction if
Tests sur des fichiers
Fonction choice
Fonction for
Fonction find
Création d'un compteur
Les paramètres
Les étiquettes
La fonction étiquette permet d'intervenir sur le séquencement,
typiquement votre script va exécuter les commandes les une à la
suite des autres. Pour casser tout ça les étiquettes permettent
d'accédées directement à un endroit du script.
rem désactive l'affichage des commandes
echo off
rem remise à blanc de l'écran
cls
rem définition du point de retour
:boucle
rem affiche le texte salut
echo salut
rem indique de retourner à la :boucle
goto boucle
Ce script va afficher salut à l'infini, grâce à la boucle formée avec le
saut qui fait un retour sur la directive :boucle.
Les SI avec la fonction IF / ELSE

La fonction If permet de définir une condition, ainsi il est possible de définir une
comparaison qui fera accepter ou non la condition.
Structures de la commande:
IF "chaine1" comparant "chaine2" (action)
IF "chaine1" comparant "chaine2" (action1) else (action2)

Exemple:
IF toto EQU toto (echo la tete a toto)
IF toto EQU tata (echo la tete a toto) else ( echo toto différent
de tata)
L'ajout du paramètre /i permet d'ignorer la casse.

Les comparants utilisables sont:


- égal à
- différent de
- inférieur à
- inférieur ou égal à
- supérieur à
- supérieur ou égal à

Il est possible de comparer des chaînes de caractères ou bien des chiffres.


Exemple : Avec des SI on pourrait mettre Zig en bouteille,
démontrons que cela est possible.
echo off
cls
rem défini le point de retour
:boucle
rem définit une variable incrémentée de 1 à chaque passage
set /a count = count + 1
rem affiche la variable à chaque passage
echo %count%
rem SI %count% est égal à 10 alors aller au saut :fin
if %count%==10 goto fin
goto boucle
:fin
rem Insertion d'une une variable
echo Grace a des SI on mis %count% fois Zig en bouteille
pause
Tests sur des fichiers
Il est possible en batch de faire des tests sur des fichiers
Test sur l'existence d'un fichier
echo off
cls
rem défini le point de retour
:boucle
rem définit une variable incrémentée de 1 à chaque passage
set /a count = count + 1
rem affiche la variable à chaque passage
echo %count%
rem SI %count% est égal à 10 alors aller au saut :fin
if %count%==10 goto fin
goto boucle
:fin
rem Insertion d'une une variable
echo Grace a des SI on mis %count% fois Paris en bouteille
pause
Test sur la non-existence d'un fichier
rem désactive l'affichage des commandes
echo off
rem remise à blanc de l'écran
cls
rem test la présence du fichier temp.bat alors
rem afficher existe sinon afficher existe pas.
if not exist temp.bat (echo existe pas ) else
echo existe
pause
La fonction FOR
Cette fonction for permet de pouvoir parcourir un ensemble de lignes dans un fichier, et
d'éxécuter des actions pour l'élément parcouru.
Structure simple:
FOR /f %%variable IN (ensemble) DO commande

On peut noter que les variables utilisées ici, ne sont pas de la forme %var%,
mais de la forme %%a.
Exemple:
@echo off
del temp.txt
rem création d'un fichier
echo 1 >> temp.txt
echo 2 >> temp.txt
echo 3 >> temp.txt
echo 4 >> temp.txt
echo 5 >> temp.txt
rem visualisation du contenu
echo le fichier temp.txt contient les lignes suivantes:
more temp.txt
echo.
echo Pour chaque ligne du fichier afficher son contenu
FOR /f %%i IN (temp.txt) DO (
echo ligne %%i
)
pause

Structure "complèxe":
@FOR /f "tokens=2 delims=," %%a in (c:\data.txt) do (
@echo %%a

)
pause
Création d'un compteur
La création d'un compteur peut être très utile dans certaines situations, par exemple
d'un compteur afin de temporiser. Ce dernier aura pour effet de retarder certaines
commandes.
Il s'agit de créer une boucle à l'aide d'une étiquette incrémentant une variable ici
%count%
rem temporistation
:boucle
set /a count = count + 1
if %count%==1000 goto finboucle
goto boucle
:finboucle
En jouant sur le seuil de déclenchement, ici "1000" nous
pouvons faire varier la durée de la temporisation.

Vous aimerez peut-être aussi