Ms Dos Ficbatch
Ms Dos Ficbatch
Ms Dos Ficbatch
1 – Définition
BATCH veut dire « lot » en anglais. Un fichier BATCH est un programme écrit en mode texte et qui
a l’extension « .bat ». Il permet de lancer une ou plusieurs commandes DOS à la suite l’une de
l’autre, et ainsi d’automatiser des tâches fastidieuses.
Les fichiers BATCH s’écrivent dans un éditeur de texte (NOTEPAD ou EDIT) et s’exécutent ligne par
ligne par l’interpréteur de commandes DOS. Appel du fichier BATCH : nom_du_fichier [paramètre(s)]
2 – Le passage de paramètre
Dans la plupart des cas, une commande a toujours besoin d’un paramètre pour s’exécuter.
Exemple :
c:\>md test : la commande MD a besoin du nom de fichier à créer.
Les commandes incluses dans le fichier peuvent être paramétrées, c’est à dire que ces commandes
nécessitent des options (paramètres formels) dont la valeur peut changer d'une exécution à une
autre du fichier batch.
Les paramètres des commandes contenues dans un fichier batch peuvent être :
• Soit fixes
• Soit variables
L’intérêt d’avoir des paramètres variables est de pouvoir réutiliser un même script avec des
paramètres différents.
Pour paramétrer les commandes d’un batch avec des valeurs variables, l’utilisateur se
sert de paramètres formels pour écrire ce batch :
Exemple :
C :\>affiche rouge noir
affiche.bat
- avec n = de 0 à 9 :
- avec n qui représente la position du paramètre dans la liste des paramètres réels fournis lors
du lancement du fichier de commande.
- %0 représente le nom du fichier de commande lui-même.
- %1 représente la valeur du 1er paramètre.
- %n représente la valeur du nième paramètre.
Pour exécuter un batch avec des paramètres variables, l’utilisateur doit fournir au batch des valeurs
appelées paramètres réels : il passe des paramètres au batch.
Conclusion :
Créer un fichier batch, c’est écrire des lignes de commandes. Quelques commandes ont été
spécialement conçues pour les fichiers batch.
A – L’instruction ECHO
MS-DOS affiche sur l’écran les commandes des fichiers batch avant de les exécuter.
L’instruction ECHO dirige cette visualisation.
- ECHO OFF empêche cette visualisation
- ECHO ON rétablit cette visualisation (mode normal)
- ECHO sans argument, délivre à l’écran le mode actuel
- ECHO <msg> dirige le contenu du message vers l’écran
Remarque :
@ N'affiche pas l'ECHO de la commande qui suit à la console. Par exemple, @ECHO OFF empêchera
l'affichage des commandes exécutées après et y compris elle-même.
B – L’instruction REM
REM <msg> agit comme ECHO sauf que REM n’est pris en compte que dans le mode ECHO ON.
En fait, ECHO s’utilise pour renseigner l’opérateur et REM pour documenter le fichier de commande
(c’est un commentaire).
L’instruction PAUSE suspend l’exécution du fichier de commande et affiche "Presser une touche pour
continuer... "
PAUSE sert à donner à l’opérateur :
- le temps de réfléchir
- la possibilité de changer une disquette
- la possibilité d’interrompre l’exécution par CTRL-C
C – Les paramètres
%1 Le signe % suivi d'une valeur numérique (à partir de 1) d'utiliser des arguments comme des
variables dans une procédure.
D – L’instruction IF
L’instruction IF
L’instruction conditionnelle se présente sous la forme IF [NOT] <condition> <commande>
Tester l’égalité : = =
IF %1 == STOP GOTO FIN
Tester l’existence d’un fichier : EXIST
IF NOT EXIST C:\MRIM1\RESEAUX\COURS\%1.pas GOTO erreur
Exemple :
Créer un fichier de commande affichant un message pour dire si le fichier passé en
paramètre est présent ou non dans le répertoire courant.
Exemple :
C:\MRIM1A\RESEAUX\COURS>trouve LesReseaux.txt
Ce fichier est prÚsent !
C:\MRIM1A\RESEAUX\COURS>trouve Les Reseaux.txt
Ce fichier est introuvable !
IF Permet de tester une condition pour effectuer des traitements conditionnels. Si la condition est
VRAIE, on exécute la commande qui se trouve sur la même ligne (en général un saut), si elle est
fausse on passe directement à la ligne suivante.
EQU - égal à
NEQ - différent de
LSS - inférieur à
LEQ - inférieur ou égal à
GTR - supérieur à
GEQ - supérieur ou égal à
MS-DOS Fichiers Batch dridi hatem - 3-
E – Les étiquettes et GOTO
:LABEL Un nom précédé de ":" constitue une étiquette (destination d'un GOTO).
Le Label et GOTO
Le label est une chaîne de 1 à 8 caractères alphanumériques. Il apparaît en position d’argument dans
l’instruction GOTO. Utilisé comme étiquette sur une ligne de commande, il doit être précédé de deux
points :
Exemple : GOTO FIN
..............
:FIN
Si le label n’est pas défini en position d’étiquette lors d’un GOTO,
l’exécution du fichier est stoppée. Le message « label not found » s’affiche.
GOTO :LABEL
La procédure continue à partir de la ligne qui commence par :LABEL. Les commandes entre GOTO et
la ligne de :LABEL ne sont pas exécutées. Le programme fait un "saut".
Jeu représente les noms de fichiers et doit être écrit entre parenthèse.
Exemple : Pour afficher le contenu de tous les fichiers « .txt » et « .pdf » du répertoire courant
COURS on pourrait saisir .
Répertoire de C:\MRIM1\RESEAUX\COURS
26/11/2007 19:01 <REP> .
26/11/2007 19:01 <REP> ..
26/11/2007 19:00 15 LeCablage.txt
26/11/2007 19:00 18 LesReseaux.txt
26/11/2007 19:01 22 MaterielReseau.pdf
26/11/2007 19:01 15 ModeleOSI.txt
26/11/2007 19:02 22 SecuriteReseau.pdf
26/11/2007 19:01 11 TCP-IP.txt
6 fichier(s) 103 octets
2 Rép(s) 2 125 905 920 octets libres
Résultat :
C:\MRIM1\RESEAUX\COURS>FOR %1 IN (*.pdf *.txt) DO type %1
C:\MRIM1\RESEAUX\COURS>type MaterielReseau.pdf
MATERIEL RESEAU .PDF
C:\MRIM1\RESEAUX\COURS>type SecuriteReseau.pdf
SECURITE RESEAU .PDF
C:\MRIM1\RESEAUX\COURS>type LeCablage.txt
LE CABLAGE .TXT
C:\MRIM1ARESEAUX\COURS>type LesReseaux.txt
LES RESEAUX .TXT
C:\MRIM1\RESEAUX\COURS>type ModeleOSI.txt
MODELE OSI .TXT
C:\MRIM1\RESEAUX\COURS>type TCP-IP.txt
On pourrait aussi taper directement cette ligne de commande, plutôt que d’aller se placer
dans le bon répertoire COURS.
C:\Documents and Settings\Thiery>cd C:\MRIM1A\RESEAUX\COURS & FOR %1 IN (*.pdf *
.txt) DO @echo type %1
L’instruction SHIFT
Cette instruction permet d’utiliser plus de 9 paramètres réels par simple
décalage.
Après chaque instruction SHIFT, le paramètre réel 0 disparaît, le paramètre
réel 1 devient 0... le paramètre 10 qui ne pouvait être atteint devient 9 donc
disponible et ainsi de suite.
SHIFT Change la position des paramètres positionnels (arguments) passés à une procédure.
Exemple :
Commande :
C:\Documents and Settings\Thiery>affRep \MRIM1A\RESEAUX\COURS
Résultat :
C:\Documents and Settings\Thiery>REM fichier batch affichage rÚpertoire
Répertoire de C:\MRIM1A\RESEAUX\COURS
Exercice :