Section courante

A propos

Section administrative du site

Fichiers en traitement par lots

Lorsqu'une commande est donnée à MSX-DOS et qu'il ne s'agit pas d'une des commandes internes, un fichier de ce nom est recherché avec une extension COM ou BAT. S'il n'est pas trouvé dans le répertoire courant, le chemin de recherche courant est recherché (voir la commande PATH). Si un fichier COM est trouvé, il est chargé et exécuté. Si un fichier BAT est trouvé, le MSX-DOS démarre l'exécution du fichier de traitement par lots.

Un fichier de traitement par lots est un fichier texte contenant une liste de commandes, et ces commandes sont lues à partir du fichier une ligne à la fois et exécutées comme si elles étaient tapées au clavier. Plusieurs des commandes décrites dans la Référence des commandes et des programmes sont en fait fournies principalement pour être utilisées dans un fichier de traitement par lots, telles que ECHO et PAUSE.

Au fur et à mesure que chaque commande est lue, elle est normalement exécutée immédiatement. Un élément d'environnement ECHO existe, cependant, qui peut être réglé sur ON (avec la commande SET ECHO ON) pour que chaque ligne de commande soit affichée à l'écran avant son exécution. La ligne de commande est répercutée de cette manière après que la substitution du paramètre % ait eu lieu. La commande SET ECHO OFF rétablira l'état normal.

Dans la ligne de commande ayant invoqué le fichier de commandes, les paramètres peuvent suivre le nom du fichier de commandes comme n'importe quelle autre commande ou nom de programme transitoire. Ces paramètres sont accessibles n'importe où dans le fichier batch en spécifiant %0 à %9. %1 est le premier paramètre spécifié dans la ligne de commande, %2 est le second et ainsi de suite. %0 est le nom du fichier de traitement par lots lui-même. Le nombre % sera remplacé par le paramètre sur la ligne de commande d'origine et peut apparaître n'importe où sur une ligne de commande de fichier de traitement par lots. Pour utiliser réellement un symbole % sur une ligne de commande, un double % doit être donné ('%%') étant ensuite remplacé par un seul.

Si l'exécution d'une commande dans un fichier de commandes est interrompue prématurément pour une raison quelconque (généralement la touche CTRL+STOP ou CTRL+C enfoncée), le prompt suivante est émise :

Terminate batch file (Y/N)?

Si la réponse à ceci est 'Y', alors l'exécution de tout le fichier batch est arrêtée. Si la réponse est 'N', l'exécution du fichier de commandes se poursuit avec la commande suivante dans le fichier de commandes.

Une fois que MSX-DOS a exécuté une commande dans le fichier de commandes, il peut avoir besoin de lire la commande suivante dans le fichier de commandes hors disque. Si le bon disque n'est pas dans le lecteur lorsqu'il s'agit de le faire, un prompt est émise. Par exemple, le prompt suivante sera émise si le fichier de commandes a été exécuté à l'origine à partir de l'unité de disque A: :

Insert disk for batch file in drive A:
Press any key to continue...

Lorsque le bon disque a été inséré et qu'une touche a été enfoncée, l'exécution du fichier de commandes se poursuit normalement.

Ci-dessous se trouve un fichier de traitement par lots très simple, affichant juste les premiers paramètres :

ECHO Parametre 0 = %0
ECHO Parametre 1 = %1
ECHO Parametre 2 = %2
ECHO Parametre 3 = %3

S'il s'appelle MYBAT.BAT, la commande MYBAT a b c affichera :

Parametre 0 = MYBAT
Parametre 1 = a
Parametre 2 = b
Parametre 3 = c

Lorsque MSX-DOS démarre pour la première fois, un fichier de traitement par lots spécial appelé AUTOEXEC.BAT est recherché et exécuté s'il est trouvé. Celui-ci peut contenir n'importe quelle commande MSX-DOS et contient généralement des commandes d'initialisation uniques, telles qu'une commande RAMDISK pour configurer un disque RAM.

Un paramètre % est passé à AUTOEXEC.BAT en tant que %1. Il s'agit de l'unité de disque à partir duquel MSX-DOS a démarré et se présente sous la forme d'une lettre de l'unité de disque normale suivie de deux-points.

Un autre fichier de traitement par lots spécial est REBOOT.BAT. Ceci est exécuté lorsque MSX-DOS est redémarré après avoir utilisé DISK-BASIC. Comme avec les fichiers AUTOEXEC.BAT, le seul paramètre %1 passé est l'unité de disque à partir duquel MSX-DOS a été redémarré.

Habituellement, certaines commandes doivent être exécutées à chaque démarrage de MSX-DOS, que ce soit pour la première fois ou plus tard, et elles sont placées dans le fichier de commandes REBOOT. Ils peuvent ensuite être exécutés à partir du fichier de traitement par lots AUTOEXEC en le terminant avec la commande REBOOT %1. Un exemple de commande pouvant être placée dans le fichier de commandes REBOOT est la commande PATH pour configurer le chemin de recherche des commandes transitoires. Lors de la configuration du chemin de recherche à l'aide de la commande, %1 peut être utilisé pour configurer le chemin sur n'importe quel unité de disque à partir duquel le démarrage a été effectué.

Lorsqu'une commande dans un fichier de commandes est le nom d'un autre fichier de commandes, ce deuxième fichier de commandes est exécuté de manière normale. Lorsqu'il se termine, le contrôle revient à l'interpréteur de commandes interactif, et non au premier fichier de traitement par lots. Les commandes de fichiers de traitement par lots s'enchaînent ainsi.

Si l'on souhaite "imbriquer" le fichier de traitement par lots, c'est-à-dire. pour passer le contrôle au premier fichier de traitement par lots ci-dessus, cela peut être fait avec la commande COMMAND2 en passant le nom du deuxième fichier de traitement par lots comme paramètre. Ensuite, lorsque le deuxième fichier de traitement par lots se termine, le premier se poursuivra avec la commande après la commande COMMAND2.

Un fichier de commandes AUTOEXEC typique est le suivant :

ECHO Exécute AUTOEXEC
RAMDISK 100
RAMDISK
COPY COMMAND2.COM H:\
REBOOT %1

Un fichier de commandes REBOOT typique est le suivant :

ECHO Exécute REBOOT
PATH H:\, %1\UTILS, %1\BATCH
SET SHELL=H:\COMMAND2.COM
SET TEMP=H:\
SET PROMPT ON
H:

Lorsque le fichier de traitement par lots AUTOEXEC s'exécute, le message «Exécute AUTOEXEC» est affiché, puis un disque RAM est configuré avec une taille maximale de 100K. Une autre commande RAMDISK est alors donnée affichant la taille réelle du disque RAM créé. La commande COPY copie ensuite COMMAND2.COM sur le disque RAM afin qu'il puisse se charger et se recharger rapidement. Enfin, le fichier de commandes REBOOT est exécuté, avec le paramètre %1 (l'unité de disque de démarrage) lui étant transmis.

Le fichier de traitement par lots REBOOT affiche un message puis définit un PATH. Le premier élément du chemin fait référence au disque RAM ayant été créé par le fichier de commandes AUTOEXEC, et les autres éléments font référence aux répertoires sur le disque à partir duquel MSX-DOS a été démarré (c'est-à-dire %1). L'élément d'environnement SHELL est configuré de sorte que COMMAND2.COM puisse se recharger rapidement à partir du disque RAM, et l'élément d'environnement TEMP est configuré de sorte que des fichiers de tuyauterie temporaires soient créés sur le disque RAM. Le prompt est activée pour que le répertoire courant soit affiché comme prompt et, enfin, le disque RAM devienne l'unité de disque par défaut.



Dernière mise à jour : Jeudi, le 12 janvier 2023