Section courante

A propos

Section administrative du site

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.

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)

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)

Règles pour 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

Utilise CLS pour effacer l'écran

L'un des objectifs des créateurs de fichiers de traitement par lot est de garder un écran propre. Certaines personnes préfèrent ne pas voir même le premier ECHO OFF lorsqu'un fichier de commandes démarre. Malheureusement, étant donné que les fichiers de traitement par lots commencent par une commande ECHO ON implicite, vous ne pouvez pas empêcher l'affichage de la première instruction ECHO OFF. Cependant, vous pouvez utiliser une astuce éliminant presque l'affichage. Avec la version 3.2 ou une version antérieure, vous pouvez démarrer le fichier de traitement par lot avec la commande suivante :

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



Dernière mise à jour : Mercredi, le 3 juin 2015