Vous êtes sur la page 1sur 4

S.

Laporte

LMS

LES FICHIERS DE COMMANDE .BAT


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 la suite l'une de l'autre, et ainsi d'automatiser des tches fastidieuses Le programme qui excute les commandes (cmd.exe) lit squentiellement chaque ligne, donc chaque commande du fichier et excute ces commandes au fur et mesure. Lorsque toutes ces commandes sont puises, le systme dexploitation reprend la main. Une fois constitus, ces fichiers sont considrs comme des commandes par DOS. Pour les lancer il est inutile de prciser leur extension. Lexcution de ces fichiers peut sinterrompre tout moment par CTRL-C. DOS affiche alors un message demandant de confirmer larrt de lexcution du fichier Batch. Un fichier de commande peut en contenir un autre : ils sont embotables . Toutefois, il faut savoir quen fin dexcution du fichier de commande embot, la main est redonne au systme dexploitation et non au fichier de commande initial. Pour crire un fichier batch, utilisez un diteur de texte. Notepad de Windows fera parfaitement l'affaire, condition de ne pas taper de caractres accentus. Sinon, utilisez le programme EDIT du langage de commande. Exemple de fichier de commande Voil le contenu du fichier exemple1.bat, enregistr la racine de C :
date time dir /W

Ce programme affiche la date et lheure (et propose de les changer) puis affiche le contenu du rpertoire courant sur 5 colonnes. Pour appeler ce programme, il suffit de lappeler en indiquant son nom la suite de linvite de commande (le fichier .bat doit se trouver dans le chemin courant) C:\> exemple1 Lance lexcution du programme

LE PASSAGE DE PARAMETRE
Les commandes incluses dans le fichier peuvent tre paramtres, cest dire que les objets de ces commandes sont des paramtres formels. Les paramtres rels seront fournis lors du lancement du fichier batch : C :\>nom-fichier-batch param1 param2 ... Exemple : C :\>affich rouge noir Nom du fichier batch sans lextension 1er paramtre 2me paramtre

S. Laporte

LMS

Lors de lappel du fichier, les paramtres rels seront substitus aux paramtres formels mesure de lexcution des diffrentes commandes. Les paramtres formels scrivent %n, o n est un chiffre de 0 9 reprsentant la position du paramtre dans la liste des paramtres rels fournie lors du lancement du fichier de commande. %0 reprsente le nom du fichier de commande lui-mme. %1 reprsente la valeur du 1er paramtre. %n reprsente la valeur du nime paramtre. Exemple : Echo %1 rouge Exemple : Supposons que la commande MOVE nexiste pas. Construire un fichier batch se nommant bouger.bat permettant de dplacer un fichier ( laide de COPY et DEL). Le premier paramtre reprsentera le fichier quon souhaite dplacer, le second paramtre reprsentera le chemin o on veut le placer. Exemple dappel : bouger texte.doc c:\doc\francais de lexemple prcdent, donne comme rsultat :

On trouvera dans le fichier bouger.bat les commandes suivantes : COPY %1 %2 DEL %1 Il y a, lexcution, substitution des paramtres rels (texte.doc et c:\doc\francais) et les commandes finalement excutes seront : COPY texte.doc c:\doc\francais DEL texte.doc

LES INSTRUCTIONS SPECIFIQUES AUX FICHIERS DE COMMANDE


Ces instructions sont reconnues par cmd.exe au mme titre que toute autre instruction interne (telle que dir ou cd). Nous allons prsenter les principales : ECHO REM PAUSE GOTO IF

Linstruction ECHO
MS-DOS affiche sur lcran les commandes des fichiers batch avant de les excuter. Linstruction ECHO dirige cette visualisation. ECHO OFF ECHO ON ECHO ECHO <msg> inhibe cette visualisation rtablit cette visualisation (mode normal) sans argument, dlivre lcran le mode actuel (on ou off) dirige le contenu du message vers lcran

Exemple : ECHO Dbut du fichier batch

Linstruction REM
REM <msg> agit comme ECHO sauf que REM nest pris en compte que dans le mode ECHO ON. En fait, ECHO sutilise pour renseigner loprateur et REM pour documenter le fichier de commande = commentaire.

S. Laporte Linstruction PAUSE

LMS

Linstruction PAUSE suspend lexcution du fichier de commande et affiche "Presser une touche pour continuer... " PAUSE sert pour donner loprateur : le temps de rflchir la possibilit de changer une disquette la possibilit dinterrompre lexcution par CTRL-C

Le Label et GOTO
Le label est une chane de 1 8 caractres alphanumriques. Il apparat en position dargument dans linstruction GOTO. Utilis comme tiquette sur une ligne de commande, il doit tre prcd de deux points : Exemple : GOTO FIN .............. :FIN ..............

Si le label nest pas dfini en position dtiquette lors dun GOTO, lexcution du fichier est stoppe. Le message label not found saffiche.

Linstruction IF
Linstruction conditionnelle se prsente sous la forme IF [NOT] <condition> <commande> Attention, un if ne peut tre suivi que dune seule commande (ou plusieurs concatnes par &) Tester lgalit : == IF %1 == STOP GOTO FIN Tester lexistence dun fichier : EXIST IF NOT EXIST c:\langage\pascal\%1.pas GOTO ERROR A partir de WNT, il est possible dutiliser ELSE avec IF, seulement si le ELSE est sur la mme ligne que le IF. Exemple : Crer un fichier de commande affichant un message pour dire si le fichier pass en paramtre est prsent ou non dans le rpertoire courant. Exemple dappel : trouve toto.xls On trouvera dans le fichier trouve.bat les commands suivantes : IF NOT EXIST %1 GOTO error ELSE ECHO Ce fichier est prsent GOTO fin :error ECHO Ce fichier est absent :fin

LES VARIABLES DENVIRONNEMENT


Certaines variables sont prdfinies par Windows (via Autoexec.bat ou par le panneau de configuration). Ce sont des variables denvironnement persistantes (c'est--dire quelles sont toujours utilisables).
3

S. Laporte

LMS

Il existe de nombreuses variables denvironnement. Il est possible den ajouter. En voil quelques unes : CD : chemin en cours WINDIR : contient le chemin du rpertoire Windows TEMP : chemin du rpertoire temporaire de Windows DATE : la date du jour TIME : lheure courante OS : systme dexploitation install USERNAME : nom de lutilisateur sur le rseau COMPUTERNAME : nom de lordinateur sur le rseau ERRORLEVEL : numro derreur (0 sil ny en a pas) PATH : cest une variable denvironnement trs importante (voir son explication ci aprs) Pour afficher toutes les variables denvironnement disponibles, il suffit de taper la commande SET. Les variables denvironnement dynamiques (qui bougent) telles que DATE, TIME ou CD napparaissent pas avec SET

LA COMMANDE SET
Cette commande, sans paramtre, permet comme on la vu de lister les variables denvironnement. Mais on peut utiliser cette commande pour crer ses propres variables denvironnement dans un fichier batch. Syntaxe SET variable = valeur SET dossier = C:\Mes Documents\Travail SET nom = %1% La variable nom prend la valeur du 1 paramtre Pour supprimer une variable, il suffit de la faire suivre du signe = tout seul SET dossier = Supprime la variable dossier

LA COMMANDE PATH
Pour quun fichier batch (de mme quun .exe ou quun .com) puisse tre excut, il faut quil se trouve : - soit dans le rpertoire en cours - soit dans un des chemins enregistrs dans la variable PATH. Si ce nest pas le cas un message derreur apparat, du genre xxxx n'est pas reconnu en tant que commande interne ou externe, un programme excutable ou un fichier de commandes. La variable denvironnement PATH contient tous les rpertoires que le systme explore si on lui demande dexcuter un fichier .bat, .exe ou .com nexistant pas dans le rpertoire courant. La variable PATH est constitue dune liste de chemins de rpertoires spars par des ; Ainsi, si vous tapez monbatch, linterprteur de commande va dabord le chercher dans le rpertoire courant. Sil ny est pas, il cherche dans le premier rpertoire contenu dans le path, puis dans le second.. jusqu ce que le fichier soit trouv (auquel cas il est excut) ou bien que tous les rpertoires du PATH aient t explors. Dans ce cas, le message derreur apparat. Il est possible dajouter un chemin dans le path en utilisant la forme suivante : PATH = %PATH%;c:\Alsi Ici, on ajoute ;c:\Alsi la variable PATH
4