Les Batchs


Qu'est ce qu'un batch ?

Un batch est un fichier texte regroupant une s�rie de commandes (Programmes ou commandes Dos). C'est un fichier �x�cutable dont l'extention est .bat.

L'int�ret d'un fichier batch r�side dans le fait qu'il :

  • automatise certaines t�ches r�p�titives
  • permet de substituer une commande longue � taper par un petit programme

    Comment cr�er un Batch?

    Pour cr�er un batch, le seul outil dont on ait besoin est un �diteur ( L'�diteur fourni avec Ms-Dos convient parfaitement).


    Notre premier Batch:

    Nous allons cr�er un petit batch nous permettant de formater une disquette dans le lecteur A:

  • Lancer l'�diteur en tapant la commande EDIT
  • Taper Format A:
  • Sauvegarder en s�lectionnant le menu Fichier,puis Enregistrer sous
  • Donner un nom au Batch Exemple: FA.BAT
  • Quitter l'�diteur en s�lectionnant Fichier puis Quitter


    Dor�navant pour formater une disquette, nous n'aurons plus qu'a taper FA puis appuyer sur entr�e, au lieu de Format A:

    Les commandes BATCH :

    Elles sont au nombre de 8 :

    CALL : appelle et ex�cute un autre fichier BATCH
    ECHO : active ou d�sactive l'affiche des commandes ou affiche un message
    FOR : Applique une commande � plusieurs fichiers
    GOTO : continue l'ex�cution du fichier BATCH � un endroit donn�.
    IF : n'ex�cute une commande que si une condition est remplie
    PAUSE : suspend provisoirement l'ex�cution du BATCH et affiche un message
    REM : permet de commenter une ligne
    SHIFT : permet de d'utiliser plus de 10 param�tres rempla�ables

    Il existe aussi plusieurs op�rateurs.

    REM

    Pour documenter un fichier ou une ligne d'un fichier . Elle permet de rendre "lisible" un BATCH

    REM ceci est une ligne de commentaires et ne sera pas affich�e � l'�cran si la commande ECHO est d�sactiv�e. ( ECHO OFF) ou si un @ (esperlu�te) est mis devant la commande REM

    exemple :

    @REM cette ligne ne sera pas affich�e

    Elle a un inconv�nient, plus il y a de REM dans un BATCH, plus son ex�cution est ralentie.

    Deux solutions existent :

  • Mettre un goto debut en t�te du batch, le label debut va �viter les REM et lanc� l'ex�cution du programme :

    exemple :

    @echo off
    GOTO DEBUT

    commentaires

    :DEBUT
    commandes


  • Mettre deux points ( : ) devant les commentaires � la place de REM, ce qui transforme cette ligne en un faux LABEL.

    exemple :

    : cette ligne est un commentaire

    ( ne pas oublier l'espace entre les deux points et la premi�re lettre, par mesure de s�curit�, au cas ou un autre label commencerait par la m�me lettre)

    La commande REM peut �galement servir � cr�er un fichier de taille nulle :

    REM > fichier

    ce fichier aura z�ro octet. L'appel a ce fichier pour quitter le BATCH ( au lieu de GOTO END) aura pour effet une sortie imm�diate.

    ECHO

    cette commande a deux utilisations :

  • Elle sert � activer ou d�sactiver l'affichage.
  • Elle sert �galement � afficher les messages de l'utilisateur.

    - ECHO employ� seul affiche l'�tat courant de ECHO

    - ECHO ON active l'affichage des commandes

    - ECHO OFF d�sactive l'affichage des commandes

    - ECHO MESSAGE affiche un message � l'�cran, m�me si ECHO est sur OFF.

    ECHO. = suivi d'un point ECHO permet de sauter une ligne � l'affichage.

    ECHO. > PRN = saute une ligne � l'impression.

    ECHO. >> fichier = Rajoute une ligne blanche dans un fichier.

    ECHO suivi de CTRL-G (ASCII 7 ) = produit un son

    ECHO suivi de CTRL-L = �jecte une page de l'imprimante

    Cr�er un fichier : ECHO O > oui.txt
    del *.bak < oui.txt
    del oui.txt

    ou ECHO O | del *.bak

    le signe @ ( a commercial ou esperlu�te) permet de faire en sorte que la ligne qui suit ne soit pas affich�e ( il doit s'agit d'une commande et non de lignes de commentaires)

    exemple : @echo off


    COMPARAISON DE CHAINES :

    Si un param�tre est n�cessaire sur la ligne de commande il faut tester son existence :

    if %1 !==! goto aide


  • Pourquoi des !

  • Parce que le DOS n'accepte pas de tester des chaines vides. Il suffit alors de mettre les m�mes caract�res aux 2 chaines compar�es ( = ou + ou ' ou ! )

    CALL

    Lance un autre batch et revient ensuite ex�cuter la commande suivante.

    exemple : CALL fichier.bat


    FIND

    Permet de trouver dans quel fichier se touve le texte que l'on recherche.

    Options :

    /V : demande l'affichage de toutes les lignes ne contenant pas le texte.
    /C : demande le nombre de lignes contenant la chaine de non leur affichage.
    /N : permet de faire pr�c�der les lignes d'un num�ro indiquant leur place dans le fichier.
    /I : ne fait aucune distinction entre minuscules et majuscules

    Exemple : afficher les fichiers, tri�s, non les r�pertoires :

    DIR | FIND /V "REP" | SORT | MORE


    SORT

    Trie sur une colonne d�termin�e :

    SORT /R /+N < fichier

  • trie un fichier d'une grandeur maxi de 64 KO
  • le trie s'effectue normalement sur la premi�re colonne mais peut �tre modifi� par /+N o� N est un chiffre repr�sentant une colonne.
  • le tri peut �tre invers� grace � l'option /R
  • le tri est alpha, chiffres avant les lettres.

    SET

    Affiche et modifie les variables d'environnement :

  • les variables d'environnement sont en g�n�ral plac�es dans AUTOEXEC.BAT

    GOTO

  • permet d'interrompre l'ex�cution d'un batch pour la poursuivre � un autre endroit marqu� par un label.

    LABEL :

  • permet un branchement lanc� par un GOTO.
  • ne doit pas comporter d'espaces et doit �tre coll� aux deux points (:) commen�ant la ligne.
  • sa longueur n'est pas limit�e mais seuls les 8 premiers caract�res seront reconnus.

    IF

    Si condition vraie, lacommande suivante est ex�cut�e, sinon on passe � la ligne suivante .

    IF NOT : si condition pas remplie
    IF EXIST : test d'existence d'un fichier
    IF NOT EXIST : test de non existence

    IF ne pr�voie pas l'existence d'un r�pertoire.

    solution :

    IF EXIST %1 goto fichier
    IF EXIST %1\NUL goto r�pertoire
    IF %1 !==\! goto r�pertoire
    echo %1 n'existe pas
    :fichier
    echo %1 est un fichier
    goto end
    :r�pertoire
    echo %1 est un r�pertoire
    goto end


    FOR, IN, DO

    FOR variable IN (liste) DO commande

    Permet d'appliqer la commande � tous les �l�ments plac�s dans la liste.

    exemple : copier les fichiers bak et txt vers le r�pertoire c:\secours :

    FOR %%A IN (*.Bak *.TXT) DO COPY %%A c:\secours /V

    exemple : r�cup�rer l'aide du DOS dans un fichier :

    FOR %%A IN (c:\dos\*.exe c:\DOS\*.com) DO %%A /? >> aide.txt

    ( si la commande est lanc�e directement de la ligne de commande on n'utilise qu'un seul % davant le A. Si la commande est int�gr�e dans un batch, il en faut 2).

    LES ERREURS

  • certains programmes g�n�rent en fin d'�x�cution un nombre indiquant s'ils ont rencontr� des probl�mes ou non.
  • les niveaux d'erreur, cod�s sur 1 octet vont de 0 � 255
    on les nomme ERRORLEVEL
  • une ex�cution sans probl�me g�n�re un code erreur de 0

    IMPORTANT : ERRORLEVEL ne teste pas si le niveau d'erreur est �gal � la valeur indiqu�e, mais s'il lui est sup�rieur ou �gal. C'est pourquoi il faut toujours commencer par tester le niveau sup�rieur.

    SHIFT

  • Utilis� pour les arguments ou param�tres de lancement.

  • On affecte %0 au 1� param�tre rencontr� ( en l'occurence le nom du Bach lui m�me), %1 au 2�me param�tre, %2 au troisieme parametre., ceci jusqu'� 9.

  • le DOS ne pouvant utiliser que 10 param�tres rempla�ables. S'il y a plus de 9 param�tres les autres seront omis.

  • SHIFT sert � d�passer cette limite. Il d�cale tous les param�tres d'un rang vers le bas. Apr�s un premier appel � SHIFT, % 1 devient %0 et %10 devient %9
    Un deuxieme appel � SHIFT permet d'utiliser %11

    PAUSE

  • Interrompt l'ex�cution d'un batch et affiche un message : appuyez sur une touche pour continuer...

  • PAUSE message : affiche un message puis "appuyez sur une....."

    pour supprimer ce message : PAUSE > NUL

    LE PATH

    La taille du PATH est limit�e � 127 caract�res ( en fait 122, car PATH= en occupe d�j� 5). Int�gr� � l'autoexec.bat il permet d'�viter d'avoir � taper en ligen de commande l'int�gralit� du chemin des applications.

    La possibilit� d'ajouter des r�pertoires au chemin n'existe pas en th�orie. Il faut reprendre en compe l'int�grali�t du Path. Il existe en fait une solution....

    La modification provisoire du Path peut se faire comme suit :

  • On sauvegarde l'ancien path : SET OLDPATH = %PATH%

  • Puis en fin de batch on r�tablit l'ancien Path : SET PATH = %OLDPATH

  • On supprime l'ancien PATH : SET OLDPATH=

    On peut sauvegarder provisoirement l'ensemble des variables d'environnement :

    SET > VARIABL.BAT

    Ainsi en tapant VARIABL on r�cup�re les anciennes valeurs de PROMPT, PATH et COMSPEC.

    On peut tr�s bien ne r�cup�rer que le PATH :

    PATH > CHEMIN.BAT

    Pour ajouter un r�pertoire au Path en cours :

    PATH = %PATH% ; %1

    Hosted by www.Geocities.ws

    1