Les fichiers de traitements par lots (Batch Files)
Un fichier de traitement par lots (batch) fournit un raccourci pour exécuter une ou plusieurs commandes MS-DOS. Lorsque vous ne faites que le nom d'un fichier de traitement par lots, le fichier exécute chaque ligne comme si vous aviez entré la ligne à partir du clavier.
Les fichiers de traitement par lots peuvent automatiser des instructions longues ou répétitives. Le risque de mal saisir une commande est réduit et de longues tâches peuvent être démarrées et laissées à s'exécuter sans surveillance. L'écriture de fichiers de traitement par lots peut être considérée comme un moyen de programmer sous MS-DOS.
Création de fichiers de traitement par lots (Batch)
Vous pouvez créer des fichiers de traitement par lots (batch) en utilisant COPY CON, n'importe quel traitement de texte capable de créer des fichiers texte (la plupart le peuvent) ou un éditeur de texte (y compris l'éditeur EDLIN de MS-DOS). Le COPY CON n'est pas recommandé pour les exemples plus longs en raison de l'inconvénient de corriger les fautes de frappe.
Si vous utilisez un traitement de texte, utilisez le mode programmeur, les clefs ASCII ou un non document. Le mode normal de nombreux traitements de texte entreposes les caractères que vous tapez dans un code que MS-DOS peut ne pas comprendre. Si votre programme de traitement de texte ne fait pas la distinction entre les documents et les non-documents, utilisez la méthode suivante pour créer un fichier de commandes de test.
- Tapez un fichier de traitement par lots simple comme ceux expliqués dans cette page. Chaque ligne du fichier doit être une seule commande MS-DOS exécutable. Évitez le soulignement, le gras et toute autre mise en forme spéciale. Assurez-vous qu'aucun retour ferme ou autre symbole n'apparaisse à l'écran.
- Enregistrez le fichier de traitement par lots avec une extension de fichier BAT ; puis essayez de l'exécuter au prompt MS-DOS.
- Si un message "Bad Command or File Name" apparaît, vérifiez l'index du manuel de votre traitement de texte pour rechercher les fichiers ASCII et voir comment le programme entrepose les fichiers en mode ASCII ou non document.
Les fichiers de traitement par lots donnés dans cette page sont dactylographiés en lettres majuscules. Le MS-DOS accepte les lettres minuscules sauf dans des cas particuliers indiqués dans le texte.
Règles de création de fichiers de traitement par lots (Batch)
- Un fichier de traitement par lots contient du texte ASCII. Vous pouvez créer un fichier de traitement par lot en utilisant la commande COPY, EDLIN (un éditeur de ligne) de MS-DOS ou un autre éditeur de texte. Si vous utilisez un programme de traitement de texte, assurez-vous qu'il est en mode programmation ou non document lorsque vous créez le fichier de traitement par lot.
- Le nom racine du fichier de commandes peut comporter de un à huit caractères et doit être conforme aux règles de création de noms de fichiers.
- L'extension du nom de fichier doit être .BAT.
- Un fichier de traitement par lot ne doit pas avoir le même nom racine que celui d'un fichier programme (fichier se terminant par .COM et .EXE) dans le répertoire courant. Vous ne devez pas non plus utiliser une commande MS-DOS interne, telle que COPY ou DATE, comme nom racine. Si vous utilisez l'un de ces noms racine pour nommer un fichier de commandes et que vous essayez d'exécuter le fichier de commandes, le MS-DOS exécutera le programme ou la commande à la place.
- Vous pouvez entrer n'importe quelle commande valide au niveau du système MS-DOS. Vous pouvez également utiliser les marqueurs de paramètre (%0-%9), les variables d'environnement en encadrant le nom de la variable entre des signes de pourcentage (tels que %COMSPEC%) et les sous-commandes de traitement par lot.
- Vous pouvez entrer n'importe quelle sous-commande de traitement par lot valide.
- Pour utiliser le signe de pourcentage (%) pour un nom de fichier dans une commande, entrez le symbole de pourcentage deux fois. Par exemple, pour utiliser un fichier appelé A100%.TXT, vous entrez A100%%.TXT. Cette règle ne s'applique pas au paramètre marqueur (0%-9%) ou aux variables environnementales.
- Vous pouvez supprimer l'affichage de n'importe quelle ligne du fichier de commandes si un @ est le premier caractère non espace sur la ligne.
Exécution de fichiers de traitement par lot (Batch)
Vous exécutez un fichier de commandes en saisissant le nom du fichier de commandes au prompt MS-DOS, en utilisant la syntaxe suivante :
dc:pathc\filename parameters |
dc: est le nom de l'unité de disque contenant le fichier de commandes. pathc\ est le chemin d'accès au fichier de commandes. filename est le nom racine du fichier de traitement par lot. parameters sont les paramètres à utiliser par le fichier de traitement par lot.
Règles d'exécution des fichiers de traitement par lots (Batch)
- Un fichier de traitement par lots doit avoir l'extension «.BAT».
- Si vous ne donnez pas de nom de l'unité de disque, l'unité de disque actuel est utilisé.
- Si vous ne donnez pas de nom de chemin, le répertoire courant est utilisé.
- Pour invoquer un fichier de traitement par lot, tapez simplement son nom racine. Par exemple, pour invoquer le fichier de traitement par lots EXEMPLE.BAT, tapez EXEMPLE, puis appuyez sur ENTER.
- Le MS-DOS exécute chaque commande une ligne à la fois. Les paramètres spécifiés sont remplacés par les marqueurs lorsque la commande est utilisée.
- Le MS-DOS reconnaît un maximum de dix paramètres. Vous pouvez utiliser la sous-commande SHIFT pour contourner cette limitation.
- Si MS-DOS rencontre une sous-commande de traitement par lot mal formulée lorsque vous exécutez un fichier de traitement par lot, il affiche un message d'erreur de syntaxe, puis continue avec les commandes restantes dans le fichier de traitement par lot.
- Vous pouvez arrêter un fichier de traitement par lot en cours d'exécution en appuyant sur Ctrl+Break. Le MS-DOS affichera ce message :
- Le MS-DOS mémorise le répertoire contenant le fichier de commandes. Votre fichier de commandes peut entraîner la modification du répertoire en cours à tout moment.
- Le MS-DOS se souvient de la disquette contenant le fichier séquentiel et peut changer de disquette à tout moment. Le MS-DOS vous invitera à insérer la disquette contenant le fichier de commandes, si nécessaire. Cependant, à partir de la version 3.0 du MS-DOS, si le fichier de commandes se trouve sur une disquette, vous ne pouvez pas retirer la disquette. Si vous le supprimez, le MS-DOS affiche un message d'erreur et arrête le traitement du fichier de traitement par lot.
- Vous pouvez faire en sorte que MS-DOS exécute un deuxième fichier de commandes immédiatement après la fin du premier. Entrez simplement le nom du deuxième fichier de traitement par lot comme dernière commande dans le premier fichier de traitement par lot. Vous pouvez également exécuter un deuxième fichier de traitement par lot dans le premier fichier de traitement par lot et revenir au premier fichier de traitement par lot à l'aide de la sous-commande CALL.
- Les sous-commandes de traitement par lots ne sont valides que pour les fichiers de traitement par lots. Vous ne pouvez pas exécuter de sous-commandes de fichier de traitement par lots comme des commandes MS-DOS normales.
- Vous ne pouvez pas rediriger l'entrée ou la sortie du fichier de traitement par lot. Cependant, vous pouvez utiliser la redirection dans les lignes d'un fichier de traitement par lots.
Terminate batch job (Y/N)?_ |
Si vous répondez Y ou (O pour le message en français) pour oui, le reste des commandes est ignoré et le prompt système s'affiche. Si vous répondez N pour non, MS-DOS ignore la commande en cours mais continue à traiter les autres commandes du fichier.
Règles pour AUTOEXEC.BAT
- Le fichier doit s'appeler AUTOEXEC.BAT et résider dans le répertoire racine de la disquette de démarrage.
- Le contenu du fichier AUTOEXEC.BAT doit être conforme aux règles de création de fichiers de traitement par lots.
- Lorsque vous démarrez MS-DOS, le MS-DOS exécute automatiquement le fichier AUTOEXEC.BAT.
- Lorsque MS-DOS exécute le fichier AUTOEXEC.BAT après le démarrage de l'ordinateur, le système ne demande pas automatiquement la date et l'heure. Pour obtenir la date et l'heure actuelles, vous devez placer les commandes DATE et TIME dans le fichier AUTOEXEC.BAT.
Démarrer un programme avec un fichier de traitement par lots (Batch)
La séquence de commandes de répertoire menant à l'exécution en ligne d'un programme particulier peut être automatisée en les plaçant dans un fichier de commandes. A titre d'exemple simple, supposons que vous démarrez régulièrement un programme appelé APPLIQUE à partir d'un répertoire particulier. Vous appelez le programme, copiez certains fichiers après avoir quitté le programme, puis revenez au répertoire racine. Vous pouvez configurer un fichier de commandes contenant les lignes suivantes (en supposant que le disque dur est l'unité C:) :
C: CD \APPDATA APPLIQUE COPY *.DAT B: CD \ |
Si vous avez nommé le fichier de commandes A.BAT, tapez un a et appuyez sur Enter sous MS-DOS pour exécuter la série de commandes dans le fichier. Vous n'avez pas besoin de saisir une extension.
Lorsque vous tapez a et appuyez sur Enter. Le MS-DOS recherche dans le répertoire en cours un fichier nommé A.COM, A.EXE ou A.BAT dans votre répertoire. Le MS-DOS exécute le fichier de traitement par lot A.BAT. Au fur et à mesure que le fichier de commandes s'exécute, vous pouvez voir les commandes apparaître à l'écran, puis les exécuter une par une.
N'oubliez pas que MS-DOS exécute uniquement les fichiers avec l'extension COM, EXE et BAT. Si vous essayez d'exécuter une commande en utilisant une extension autre que ces trois-là, le MS-DOS ne trouve pas de fichier que le programme peut exécuter et affiche donc le message d'erreur :
Bad command or file name |
ECHO OFF CLS |
La commande CLS est la commande d'effacement de l'écran du MS-DOS intégrée à COMMAND.COM. Bien qu'il ne s'agisse pas d'une sous-commande de traitement par lot, la commande CLS a une excellente utilisation dans les fichiers de traitement par lot. Lorsque CLS suit immédiatement ECHO OFF, l'écran s'efface si rapidement que vous ne voyez ECHO OFF que si vous le recherchez. Si vous utilisez MS-DOS version 3.3 ou supérieur, «@CLS» doit apparaître en premier, suivi de @ECHO OFF. Le rafraîchit de l'écran est plus rapide. Si vous souhaitez uniquement désactiver ECHO sans d'abord effacer l'écran, vous pouvez utiliser uniquement la deuxième instruction.
Définition des paramètres
Les informations que vous tapez après la commande sont appelées un paramètre. Dans un fichier de traitement par lots, vous pouvez définir jusqu'à 10 paramètres. Vous définissez un paramètre dans le fichier de commandes en utilisant un marqueur de variable à une variable avec le signe de pourcentage (%) suivi d'un nombre de 0 à 9. Les variables sont appelées des marqueurs, des paramètres remplaçables ou des arguments.
Exemple 1
Considérez le fichier MOVING.BAT. Le fichier de commandes copie un fichier dans un sous-répertoire désigné, puis efface le fichier d'origine :
COPY C:\%1 C:\SUBDIR1\ /V ERASE C:\%1 |
Supposons que vous tapiez la ligne de commande suivante :
MOVING FORMAT.COM |
Le fichier de traitement par lots MOVING.BAT commence à s'exécuter et remplace le premier paramètre (FORMAT.COM) par la variable %1. Après la substitution, les lignes du fichier de commandes deviennent les suivantes :
COPY C:\FORMAT.COM C:\SUBDIR1 /V ERASE C:\FORMAT.COM |
Le MS-DOS remplace chaque %1 par les premiers paramètres de la ligne de commande.
Si FORMAT.COM se trouve dans le répertoire racine de l'unité C, le fichier de commandes MOVING copie FORMAT.COM (avec vérification) dans le sous-répertoire appelé SUBDIR1, puis efface FORMAT.COM de la racine. Ce fichier de commandes vous évite l'étape supplémentaire d'effacement du fichier d'origine après sa copie.
Exemple 2
Vous pouvez rendre le fichier de traitment par lots MOVING plus général en configurant deux paramètres : un pour le nom du fichier et le second pour le disque ou le répertoire vers lequel le fichier sera déplacé. En utilisant le deuxième paramètre, vous pouvez demander à MS-DOS de copier le fichier dans n'importe quel sous-répertoire de l'unité de disque C. Ce nouveau fichier de traitement par lots est simple :
COPY C:\%1 C:\%2 /V ERASE C:\%1 |
Ensuite, pour déplacer le fichier FORMAT.COM vers le répertoire C:\DOS31, tapez ce qui suit :
MOVING FORMAT.COM DOS31 |
Le fichier de commandes contient un défaut majeur. Que se passe-t-il si vous tapez mal ou omettez le nom du répertoire, le deuxième paramètre ? À la commande COPY, le MS-DOS émet un message de répertoire non valide et ne copie pas le fichier. Le danger est que MS-DOS passe à l'étape suivante d'effacement du fichier. Le fichier d'origine n'a pas été copié mais est effacé !
De la même manière, si vous oubliez de saisir un deuxième paramètre, le MS-DOS affiche le message d'erreur :
File cannot be copied onto itself |
et ne copie pas le fichier. Même ainsi, la deuxième ligne force MS-DOS à effacer le fichier. Le fichier MOVING.BAT antérieur n'a pas rencontré ce problème car un nom de sous-répertoire valide pour la destination (SUBDIR1) a été incorporé dans le fichier de commandes.
Paramètres de comptage
Un fichier de traitement par lots 10 paramètres possibles : %0 à %9. Le premier paramètre est le numéro de paramètre 0 et est désigné comme %0 dans les fichiers de traitement par lots. Le paramètre %0 signifie le nom du fichier de traitement par lots que vous avez tapé au prompt MS-DOS.
Les éléments restants sur la ligne sont les paramètres 1 à 9. Le premier mot après le nom du fichier de traitement par lots est le paramètre numéro 1, %1 dans le fichier. Le deuxième mot est %2 et le neuvième élément de la ligne est %9. Chaque mot sur %2, et le neuvième élément sur la ligne est %9. Chaque mot sur la ligne est séparé du suivant par un espace, une virgule, deux-points, un point-virgule, un guillemet simple ou un signe égal.
Lorsque vous utilisez des paramètres remplaçables, n'oubliez pas que vous devez commencer par %1, et non par %0.
Bien que MS-DOS vous limite aux paramètres 0 à 9 dans un fichier de commandes, une ligne de commande peut avoir de nombreux paramètres dans la limite de 127 caractères de la ligne de commande. Voir l'explication de la sous-commande SHIFT pour savoir comment inciter MS-DOS à utiliser les autres paramètres.
Utilisation des commandes de fichier de traitement par lots
Vous pouvez utiliser n'importe quelle commande MS-DOS valide dans un fichier de traitement par lots. Le MS-DOS dispose également d'un ensemble de commandes spécifiquement destinées à être utilisées dans les fichiers de traitement par lot : les sous-commandes de traitement par lots. Les sous-commandes de traitement par lots pour la version 3 sont répertoriées dans le tableau suivante :
Commande | Description |
---|---|
@ | Supprime l'affichage d'une ligne à l'écran (MS-DOS version 3.3 et supérieur). |
CALL | Exécute un autre fichier de commandes, puis revient au fichier de commandes d'origine (MS-DOS version 3.3 et versions ultérieures). |
ECHO | Active ou désactive l'affichage des commandes par lots et affiche un message à l'écran. |
FOR..IN..DO | Permet d'utiliser la même commande de traitement par lots pour plusieurs fichiers. |
GOTO | Saute à la ligne après une étiquette dans le fichier de traitement par lots. |
IF | Permet l'exécution conditionnelle d'une commande. |
PAUSE | Arrête le traitement jusqu'à ce qu'une touche soit enfoncée et affiche éventuellement un message. |
REM | Affiche un message à l'écran. |
SHIFT | Décalage des paramètres de la ligne de commande d'un paramètre vers la gauche. |
Remarques
- Si les possibilités des fichiers .BAT sont trop limité pour vos besoins, vous devriez envisager d'utiliser le logiciel 4DOS de JP Software, lequel est beaucoup plus flexible et riche en possibilité.
- Si vous avez besoin de plus d'option pour manipuler l'écran, comme changer la couleur de l'écran, que la commande CLS fournit avec MS-DOS, vous devriez envisager d'utiliser la commande BE CLS fournit avec le Norton Utilities pour DOS.