01 - la programmation batch - les debuts.pdf

46
Tutoriel sur la programmation Batch Par Adrien REBOISSON - [email protected]

Upload: wenceslas-dima

Post on 18-Aug-2015

269 views

Category:

Documents


11 download

TRANSCRIPT

Tutoriel sur la programmation BatchPar Adrien REBOISSON - [email protected] des matiresIntroductionQu'est ce qu'un fichier BatchCrer des fichiers batch avec PowerBatchI] Cration du fichier batch "Hello, Word !"Votre premier fichier BatchComment fonctionne-t-il ?La commande ECHOL'cho localAfficher une ligne videCommentez votre codeLes caractres accentusII] Utilisation de commandes DOS dans un fichier BatchQu'est-ce qu'une commande DOSLa variable PATHArguments passs une commande, un fichierCrez vos commandes avec les Batch.III] Variables d'environnementQu'est ce qu'une variable d'environnementDfinir, modifier, supprimer, une variable d'environnementLire les valeurs des variables d'environnementInsrer des dfinitions dans Autoexec.batIV] Sauts inconditionnelsQu'est ce que les sauts inconditionnelsLa commande GOTOLa commande LABELV] Excution conditionnelleA quoi servent les commandes d'excution conditionnellesLes diffrentes formes de ces commandes et l'intrt de leurs combinaisons : IF,IF NOT, IF EXISTVI] BouclesLa commande For DoVII] La compilationQu'est ce que la compilationComment compiler un fichier BatchLes erreurs de compilationVIII] Les borduresGnrer des bordures en utilisant l'assistant dans PowerBatchIX] Ecriture dans des fichierscriture en mode ajoutcriture en mode crasementcriture de rsultats de commandeRedirection vers le priphrique virtuel NULX] Appel d'autres fichiers BatchUtilisation de fichiers Batch come sous-programmeLancement d'autres fichiers BatchXI] Travail avec ERRORLEVELUtilisation de la commande ERRORLEVELXII] 5 autres fonctions de PowerBatchTest ligne, test bloc, test pas pasLes modlesL'assistant XCOPYLa commande CHOICELe convertisseur HTMLAvertissement : Ce tutoriel n'a pas pour vocation de remplacer unlivre ddi la programmation Batch, mais surtout d'initier leprogrammeur dbutant cette technique. Il n'est pas exemptd'erreurs, si vous en reprez, merci de me contacter par mon [email protected] version la plus rcente de ce manuel sera toujours publie sur http://astase.com4.ws1) IntroductionBasiquement, un fichier Batch n'est rien de plus qu'un fichier texte contenant descommandes MS-DOS, et possdant le suffixe ".bat".Si vous ne connaissez pas MS-DOS ou n'avez jamais entendu parler de Autoexec.bat,passez votre chemin : en effet, la programmation Batch ncessite une connaissanceminimum de l'environnement DOS.En fait, un fichier Batch contient simplement une suite de commandes que vous pourrieztaper sous l'invit (prompt) du DOS, chaque nouvelle ligne du fichier correspondant une nouvelle commande. Nanmoins, certaines commandes ne sont qu'utilisables dansles fichiers batch du fait de leur inutilit dans l'environnement de commande DOS.Leur utilit est, par exemple, quand il faut rpter toujours la mme srie decommandes. titre d'exemple, nous pourrions voquer le changement de rpertoire etpeut-tre aussi la commande FORMAT qu'on fait souvent suivre de la commandeCHKDSK pour vrifier si la disquette a bien t formate.Exemple :Imaginons un fichier batch contenant les commandes suivantes :cd \cd gamessuperjeu.exeCela aurait le mme effet que si vous tapiez sous DOS les commandes suivantes :C:\Chemin> cd \[Entre]C:\> cd games [Entre]C:\games> superjeu.exe[Entre]L'intrt des batch est donc d'automatiser des tches rptitives effectues sous DOS.Les fichiers batch sont donc trs faciles crer puisqu'un simple diteur texte suffit(Comme EDIT, sous DOS)Les fichiers batch peuvent galement utiliser toutes les commandes DOS, ce qui renddisponible pour le programmeur un grand nombre de fonctions.Enfin, leur taille est relativement lgre par rapport d'autres programmes, ce quifacilite leur "transferts" sur diffrents disques et supports de stockage.CependantLe langage Batch n'est pas compil, il est interprt par COMMAND.COM cequi rend plus lent l'excution de programmes batch par rapport desapplications crites directement en langage machine,Les fichiers Batch sont directement ditables, donc votre code n'est pas"protg" la copie par d'autres programmeurs,Enfin, et surtout, des oprations lmentaires telles que le traitement dechanes de caractres, d'oprations mathmatiques, etc n'existent pas sousDOS, ce qui implique l'usage de programmes externes (s'ils existent, selon lescas).2) Cration de fichiers Batch avec PowerBatchIl existe un logiciel nomm PowerBatch permettant de crer trs facilement des fichiersBatch, en utilisation libre en plus.Nous allons apprendre nous en servir pour crer nos fichiers Batch.1) Tlcharger le fichier depuis http://astase.com4.ws2) Dcompressez le fichier ZIP, lisez attentivement les fichiers "Lisez moi", puisinstallez le logiciel (Si besoin est, vous devez un moment redmarrer votre PC puisrecommencer l'installation).1) Cration du fichier Batch "Hello, Word"Nous allons nous atteler la programmation d'un fichier affichant l'cran le traditionnel"Hello Word" en langage Batch.La capture d'cran ci-dessous vous montre l'cran du logiciel lorsque vous le lancez.Dans la zone de texte, tapez :Echo Hello Word !Qu'est ce que vous venez d'crire ? Vous avez crit la commande "Echo" permettant d'afficher du texte l'cran.Cette commande exige un paramtre : le texte qu'elle doit afficher l'cran.Le paramtre est donc plac droite de la commande, spar par un espace.En ralit, ECHO est utilis pour faire sortir tous types de donnes dans n'importe quelpriphrique (et mme dans un fichier). Dans notre cas nous l'utilisons pour faire sortirdes donnes sur l'cran d'un ordinateur, nous allons donc dire pour l'instant que ECHOest une commande permettant d'afficher du texte l'cran.Remarquez l'absence de guillemets, par rapport d'autres de langages deprogrammation exigeant que les variables littrales soient distingues par desguillemets.NOTE IMPORTANTE : MS-DOS n'est pas sensible pour les commandes la diffrenceentre les majuscules et les minuscules, que vous criviez echo ou Echo, ou bienencore ECHO ou EcHo, le rsultat sera le mme.PowerBatch possde une fonction bien pratique permettant de tester le fichier Batch encours.Pressez F6, ou excutez la commande "Test global" situ dans le sous-menu "Tests" dumenu "Programme".Une fentre DOS apparat, avec le resultat suivant :Le DOS nous a bien affich notre rsultat, MAIS il apparat comme si on venait d'entrerles commandes sparment sous DOS : En effet, on distingue l'invite (c:\ProgramFiles\PowerBatch>), la commande (Echo Hello, Word !), son rsultat dessous, puis unsecond invite.Nous souhaiterions que seuls les rsultats des commandes apparaissent l'cran.Il va falloir utiliser l'cho local. L'cho local est une fonction permettant ou non de voiruniquement les rsultats des commandes entres.Ci-dessus, l'cho local est activ, puisque l'on voit l'invite DOS et les commandescomme si on les avait taps sous DOS.Il va falloir dsactiver cet cho en tapant :Echo offQu'est ce que vous venez d'crire ? Vous avez crit la commande "Echo" permettant d'afficher du texte l'cran, maisvous avez transmis un paramtre particulier la commande : il s'agit du paramtre "off",qui dsactive l'cho local. Cette commande accepte aussi le paramtre "on" qui permetd'activer cet cho. Vous avez donc dans le cas prsent dsactiv l'cho local.Testez de nouveau le fichier en crivant donc :Echo offEcho Hello Word !Puis pressez ensuite F6 :Voil comment le programme s'est droul :L'cho est sur ON : le programme affiche toutes les commandes avant de lesexcuter. L, le programme a rencontr la commande "echo off". Il l'a affich,puis l'a execut. L'cho est maintenant sur OFF, il est dsactiv. Le programme rencontre la commande "Echo Hello, Word !". Il se contentedonc d'afficher "Hello, Word !" l'cran.Nanmoins, on voit toujours l'invite en haut, ainsi que "echo off". Il nous faut donctrouver un moyen de les supprimer.La commande "@" est adapt notre cas : elle permet de dsactiver immdiatementl'cho pour une ligne, il suffit juste de faire prcder la ligne de ce signe.On a donc :@Echo offEcho Hello Word !Pressez F6 pour executer le fichier et batch Et l, on a enfin que ce que l'on cherche :A retenirLa commande "echo", pour afficher un texte,Qu'est ce que l'cho local,Le paramtre "off" pour dsactiver l'cho local, "on" pour l'activer,Le caractre "@" pour dsactiver l'cho local sur une ligne.Aller plus loin :La commande "echo." permet d'afficher une ligne vide.On peut donc afficher un petit texte, par exemple :@Echo offEcho Bonjour, c'est l'ordinateur qui te parle !Echo.Echo N'ai pas peur je ne te veux aucun mal.Echo.Echo J'espere que tu vas bien.Echo Moi, c'est le cas !Echo.Donne :Commentez votre codeEssayons de prendre les bonnes habitudes tout de suitePour vous et sur le moment, votre code vous parat parfaitement clair. Mais le sera t-ildans un mois ou lu par une autre personne ?Il est donc ncessaire d'insrer des remarques, appeles "commentaires" dans vosfichiers.La commande "REM" (REMark) est l pour vous ! Il suffit simplement d'apposer votrecommentaire aprs la commande, par exemple :@echo offREMFormatage de la disquetteFormat a:REMCreation du dossier Backup sur a:\Mkdir a:\backup\REMCopie des fichiersCopy c:\backup\*.* a:\backup\*.*La commande REM ne sera pas excute, mais vous aidera mieux comprendre ceque vous avez voulu faire lorsque vous n'avez pas tudi le Batch depuis longtemps.Attention aux caractres spciaux !Les caractres spciaux sont les accents, signes divers comme /, %, etc.N'utilisez pas d'accent, car MS-DOS va remplacer les caractres accentus par dessymboles :@echo offecho J'ai t reue mon examen !Donne :Utilisez plutt la fonction d'accentuation de PowerBatch (Menu "Commandes", "sous-menu "Caractres spciaux", articles "Accent grave", "Accent circonflexe", "Accentaigu", etc.)A retenirLa commande "echo." Pour afficher une ligne videLa ncessit de commenter son code (Commande REM)Eviter d'utiliser directement des caractres spciaux, comme des caractresaccentus.Astuce PowerBatch : Utilisez l'article "Standard Batch" du menu "Modle" pourcrer un batch automatiquement avec @echo off.2) Utilisations de commandes standard DOS dans unfichier BatchIl est trs facile d'excuter des commandes DOS dans un fichier Batch, et c'est mmefait pour aIl vous suffit d'insrer la commande dans le batch.Par exemple, voici un fichier listant le contenu du disque C:, allant dans le dossier Jeux,puis excutant le fichier SuperJeu.exe :@echo offecho Listage du disque C:\dir c:echo Va dans le dossier jeuxcd jeuxecho Lance SuperJeux.exeSuperjeux.exeNotre but n'est pas de vous apprendre toutes les commandes MS-DOS, vous tescens connatre les plus communes.Nous allons donc tudier ce qu'est une commande MS-DOS en ralit.RAPPEL : Nous sommes sous DOS, les noms de fichiers sont limits 8 caractres(sinon, on tronque les deux derniers caractres par ~x, x reprsente un nombre"discriminant" destin distinguer deux ventuels noms communs)Il y a deux possibilits :Soit la commande DOS est intgre l'interprteur COMMAND.COM. C'est lecas des commandes les plus communes comme DIR, CD, etcSoit la commande est en ralit un excutable DOS, c'est--dire que c'est uneapplication qui est intgre sous la forme d'une commande standard. C'est surce cas que nous allons nous pencher.1) Comment un excutable peut-tre considr comme un commande ?Une commande est par dfinition un "mot" que l'on peut entrer o que l'on soit (que l'onsoit dans le rpertoire A ou le rpertoire B), et qui ne ncessite pas qu'on indique sonchemin d'accs, et qui bien sr agit physiquement ou logiciellement sur votre ordinateurdirectement ou l'aide de paramtres.RAPPEL : Pour lancer un fichier .EXE, .COM ou .BAT, il n'est pas ncessaire deprciser l'extension de ces derniers.Pour lancer Superjeu.exe, vous n'tes pas oblig de taper :Superjeux.exeVous pouvez simplement entrer :Superjeu pour que MS-DOS "comprenne" que vous souhaitez lancer le programme"Superjeu.exe".Mais ou sont donc stocks ces commandes ?Ces commandes sont stockes "naturellement" dansC:\DOSSIER_DE_WINDOWS\COMMAND\, donc, dans la majorit des cas, dansC:\WINDOWS\COMMAND\Si vous possdez un fichier .exe, .com ou .bat, et que vous souhaitiez l'tablir en tantque commande DOS, copiez le simplement dans ce rpertoire.Par exemple, prenons l'exemple de DisBonjour.batIl contient une commande permettant d'afficher l'cran "Bonjour".Copiez-ce fichier dans C:\WINDOWS\COMMAND\Tapez ensuite DisBonjour.bat => Votre texte apparat l'cranPlus fort : tapez simplement DisBonjour => Votre texte apparat aussi l'cranConclusion 1 : Pour "ajouter" des commandes MS-DOS, copiez des excutablesDOS d'extension .bat, .exe, ou .com dans le rpertoire "COMMAND" du dossier deWindows.2) La variable PATH et les autres rpertoires d'ajout possiblesD'autres rpertoires peuvent dfinir des chemins d'accs potentiels des commandes.Pourvoirlescheminsd'accspossiblesinstallssurvotremachine,tapez"path"dansune session MS-DOS.Voil un exemple possiblede rsultat :On peut voir que les rpertoires d'accs sont au nombre de 3, et spars par des point-virgules :C:\Windows(2 fois, il s'agit sans doute d'une erreur d'un logiciel)C:\Windows\CommandC:\CntxCela veut dire que n'importe quel fichier .exe, .bat, ou .com peut tre lanc comme unecommande dans l'environnement DOS :Conclusion 2 (et finale) : Pour "ajouter" des commandes MS-DOS, copiez desexcutables DOS d'extension .bat, .exe, ou .com dans un des rpertoires spcifis parla variable "Path".3) Ajouter un chemin d'accs la variable path"Path" est une variable d'environnement, c'est dire, (nous le verrons plus en dtailsplus tard) que cette variable reprsente une valeur accessible n'importe ou et n'importequand dans l'environnement DOS.Dans le cas actuel, cette variable est modifiable, nous allons donc inclure un autrechemin d'accs dans cette variable.REGLE 1 : Une variable d'environnement est identifie la lecture lors d'une dfinitionpar deux "%" autour de lui. En effet, l'execution, MS-DOS remplace le contenu d'un"mot " entour par deux "%" par sa valeur.Dans le cas actuel, "Path" peut-tre lue en appellant "%PATH%".Pour ajouter un chemin d'accs, on fera donc :PATH=%PATH%;CHEMIN_A_AJOUTEREn effet :Le premier PATH est en criture (pas besoin de %PATH%)Le second PATH est destin inclure l'ancien path, et doit contenir la variablePATH (d'o %PATH%)Le point-virgule est destin sparer le chemin prcdent du nouveauchemin.CHEMIN_A_AJOUTER reprsente le chemin d'accs ajouterImaginons que la variable PATH contienne "C:\WINDOWS;C:\WINDOWS\COMMAND".Nous souhaitons ajouter le chemin C:\MESJEUX\SUPERJEUXOn inscrira donc dans un fichier Batch ou directement dans l'interprteurCOMMAND.COM :PATH=%PATH%;C:\MESJEUX\SUPERJEUXCe qui donne pour le DOS :PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\MESJEUX\SUPERJEUXMaintenant, imaginons que vous souhaitez lancer Superjeu.exe situ dansC:\MESJEUX\SUPERJEUX. Or, on vient de mettre le chemin dans le Path.Par consquent, on peu simplement taper :Superjeu.exeOu, comme une commande standard :SuperjeuCela signifie aussi que tous les autres fichiers situs dans le "%path%" pourront-trelancs comme des commandes standard.Par exemple, si "c:\WINDOWS" est dans le Path, entrez Winver pour lancerC:\windows\winver.exe et afficher la version de Windows (Bien sur ce programme n'estpas fait pour le dos, c'est donc Windows qui le lancera automatiquement).4) Paramtres envoyes une commande ou un programme.On appelle paramtre tous les arguments passs un programme ou une commande.Les paramtres sont spars par des espaces.Par exemple, dans :FORMAT a: /V[:MaDisquette] /B /CFORMAT est la commande,A: est le premier paramtre/V[:MaDisquette] est le second paramtre/B est le troisime paramtre/C est le quatrime paramtre.En fait, FORMAT est un programme (FORMAT.EXE) localis dansC:\WINDOWS\COMMANDCe programme reoit donc comme argument tous les paramtres envoys parl'intermdiaire du DOS.Votre Batch peut, on le verra plus en dtail plus tard, recevoir neuf paramtres sparspar des espaces, comme un programme standard comme FORMAT.EXE peut le faire.Ce sont des variables d'environnement spciales destines spcifiquement au fichierBatch qui est utilis : chaque Batch peut donc lire les arguments, si il y en a, qui lui sontenvoys lors de son lancement. RETENIR : Dans Windows, il est impossible d'envoyer des paramtres en doublecliquant sur un fichier.Pour envoyer des paramtres un fichier dans Windows, vous devez le faire soit par unraccourci, en ditant la "destination" du lien, soit par un fichier PIF (*.pif) permettant sedfinir les prfrences d'excution d'une application DOS.Vous pouvez donc lire 10 variables relatifs au arguments passs votre programme.Ces variables vont de %0 %9 . La variable %0 contient le chemin d'accs auprogramme, %1 le premier paramtre, %2 le second paramtre jusqu' %9 quicontient le neuvime paramtre envoy au batch.Exemple : crez avec PowerBatch un fichier ressemblant celui-ci dessous, puisutilisez la fonction "Test avec paramtres" de PowerBatch (Menu "Programme", sous-menu "Tests") pour envoyer des paramtres au fichier (ou procdez par l'intermdiairedu DOS) :@echo offecho L'adresse de ce fichier est %0echo Le premier parametre est %1echo Le second parametre est %2echo Le troisieme parametre est %3echo Le quatrieme parametre est %4Dans le cas ou vous n'envoyez aucun paramtre (vous lancez simplement le fichier),vous obtenez un rsultat de ce type :Comme vous le constatez, rien n'apparat la place des %1 %2 %3 et %4 : en effet,nous n'avons pas envoy de paramtre l'application, c'est donc normal.Envoyez 3 paramtres, par exemple "/V" pour le premier paramtre, "ABC.EXE" pour lesecond, et "C:\" pour le troisime.Sous DOS, vous pouvez lancer le fichier en le faisant prcder de son adresse, puis enenvoyant les paramtres, par ex :C:\Tests\Monbatch.bat /V ABC.EXE C:\Vous pouvez procder plus facilement avec PowerBatch : entrez simplement cesparamtres dans la boite de dialogue affiche lorsque vous cliquez sur l'article "Globalavec paramtres" dans le sous-menu "Test" du menu "Programme", cliquez sur "OK": lefichier est excut avec les paramtres entrs.Ce qui donne :Ce qui est bien sr parfaitement logique.Nous apprendrons plus tard nous en servir dans un programme : tester si le fichier ades paramtres, agir en fonction, etcA retenirMme si ces notions peuvent vous sembler un peu disparates, elles sontimportantes pour aborder la suite de la formation :Une commande peut-tre un fichier, dont le rpertoire est inscrit dans lavariable %PATH%Un fichier peut-tre lanc sans prciser son chemin d'accs si son rpertoireest dans la variable %PATH%La variable %PATH% est modifiable par le DOS ou un fichier BatchComment un fichier peut recevoir des arguments, et comment y accder viales variables spciales %x3) Variables d'environnementUne variable d'environnement, nous l'avons dj dit plus haut, reprsente une valeuraccessible n'importe ou et n'importe quand dans l'environnement DOS.Pour visualiser les variables d'environnement actives sur votre ordinateur, il vous suffitde taper la commande set ce qui donne par exemple :Prcisons que, dans le langage Batch, la seule facon de stocker des donnes est de lesassocier des variables d'environnement. Il n'existe pas de variables "locales" qued'autres fichiers Batch ne pourraient pas connatre (sauf les variables sous la forme %x)Nous voyons donc que 8 variables d'environnement sont dfinies sur cet ordinateur :TMP, TEMP, PROMPT, WINBOOTDIR, COMSPEC, PATH, WINDIR; et BLASTER.Sur ces 8 variables, 7 sont dfinis par WINDOWS : TMP (Rpertoire temporaire), TEMP(Rpertoire Temporaire), PROMPT (Invite du DOS), WINBOOTDIR (Dossier dedmarrage de Windows),COMSPEC (Adresse de l'interprteur de commandes), PATHet WINDIR (Dossier de Windows).Il est important de savoir que le contenu de ces variables est dtruit une fois l'ordinateurteint ou la session DOS termine. Il faut donc, si ces variables doivent-tre prsentes chaque session, les dfinir dans Autoexec.bat (qui est lui lanc chaque dmarrage).Par exemple, la variable "BLASTER" est dfinie dans Autoexec.batDfinir une variable d'environnementPour dfinir une variable d'environnement, faites :Set NomVariable = Valeur de la variableNous souhaitons dfinir une variable "VersionWindows" contenant la version deWindows (Dans notre cas Windows 98 SE (Seconde Edition))Nous allons donc taper dans le DOS, ou crire dans un fichier batch :Set VersionWindows = 98 SEValidez la commande puis excutez le Batch.Il semble que rien ne se passe : normal, cette commande ne produit pas de rsultatvisible l'cran.Pour voir si notre ajout a t pris en compte, il suffit de taper "set" pour voir si notrevariable a t ajoute la liste de celles dj dfinies sur notre ordinateur.Dans notre cas, il apparat :Notre variable a bien t ajoute.Notons que :Cette variable ne sera dtruite qu' l'extinction de l'ordinateur ou la fin de lasession DOSN'importe quel autre programme peut lire, modifier ou rcrire sur cettevariable.Redfinir une variable d'environnementIl suffit de rcrire la commande avec une nouvelle valeur, qui viendra craserl'ancienne, par exemple :Set VersionWindows = Windows MilleniumDans ce cas, l'ancienne valeur crasera la nouvelle.Supprimer une variable d'environnementIl faut simplement assigner une valeur nulle la variable, par exemple :Set VersionWindows =La variable est maintenant supprime.Utiliser une variable d'environnementPour utiliser une variable d'environnement, il faut l'encadrer par des "%".Il n'y a que la commande SET qui ne demande pas de signe "%" pour l'argumentreprsentant le nom de la variable dfinir : en effet, on ne lit pas la valeur de lavariable, mais on la dfinit.Lors de l'excution du Batch, lorsque l'interprteur rencontre un nom encadr de deux"%", il substitue ce nom par la valeur de la variable qu'il reprsente, si elle existe.Exemple :Echo %VersionWindows%Echo La version de Windows est %VersionWindows%Set VersionWindows = %VersionWindows% - 32 BitsLa premire ligne va simplement afficher la valeur de la variable "VersionWindow"La seconde ligne va afficher "La version de Windows est "suivie de la valeur de lavariable "Version Windows".Enfin, la dernire ligne va redfinir la variable "VersionWindows" par sa valeur, laquelle on ajoute " 32 Bits "(Dans notre cas la version devient "98 SE 32 Bits".A retenirQu'est-ce qu'une variable d'environnementComment dfinir, modifier ou supprimer une variable d'environnementEncadrer une variable de "%" pour lire sa valeurLes variables d'environnement se perdent l'extinction de Windows ou lafermeture de la session DOS. Les variables qui doivent donc tre dfinies chaque dmarrage devront donc tre dfinies dans Autoexec.batDans PowerBatch, vous pouvez facilement agir sur les variables en utilisant lesous menu "Variables" du menu "Commandes"4) Saut inconditionnelLe langage Batch vous permet d'utiliser des commandes de boucle, c'est a dire derpeter un bloc de commandes indfiniment.Nous allons tudier dans ce chapitre la commande "Goto". C'est une commande de sautinconditionnelle, qui ne peut tre arrte (ou l'aide de commandes que vous neconnaissez pas encore), par consquent vous allez tre amen fermer de faon"brutale" des programmes DOS, et vous rencontrerez sans doute ce message :Cela signifie que vous tentez d'arrter un programme DOS qui est toujours actif. Cliquezsur "Oui" pour quitter le programme.En principe, les lignes de commande sont traites les unes aprs les autres dans unfichier Batch. Toutefois, dans certains cas, on est oblig de sauter des lignes pourreprendre le traitement un autre endroit du fichier.C'est dans ces cas l que nousallons utiliser les commandes de boucle.On associe souvent une commande de saut une commande d'instructionconditionnelle (voir chapitre suivant), ou lorsqu'un bloc de commande doit tre rptindfiniment. C'est sur ce cas quenous allons nous pencher pour l'instant.Notre premire bouclePour faire une boucle, il nous faut deux commandes :-La premire est un "Label", c'est--dire une tiquette pose dans leprogramme l'endroit ou la boucle doit commencer.-La seconde est la commande Goto, (de l'anglais Go To qui signifie "aller ")qui, accompagne du nom du Label, indique l'ordinateur, quand il doit serendre l'tiquette du mme nom.Par exemple :Commande 1Commande 2Label BONJOURCommande 3Commande 4Commande 5Goto BONJOURLes commandes 1, et 2, sont excutes une fois, alors que les autres commandes sontexcutes en boucle, puisque le programme rencontre "GOTO", va au label du mmenom, continue, rencontre nouveau "Goto", reva au label , etc Un label se prsente sous la forme ::NomDuLabelLe nom ne doit pas dpasser 8 lettres (si le nom du label dpasse 8 lettres,seules les 8 premires lettres seront prises en compte), et ne pas tre composd'espaces. Par exemple:Debutest un bon nom pour un label Un "Goto" se prsente sous la forme de cette commande suivie du nom du label, parexemple :Goto Debut pour aller au label "Dbut".Allons ypour une boucle infinie !Nous voulons afficher "Hello, Word !" en boucle.Nous crirons donc :@echo off:Startecho Hello, Word !Goto StartLe nom du label est librement configurable, vous pouvez prendre un tout autre nom que"Start", l'essentiel tant que le nom du label et le nom qui suit le "Goto" soientidentiques.Vous obtiendrez un rsultat de ce type : Signe que notre programme a bien bouclA retenirLa commande "Goto" permet d'aller au label du mme nomLa marque ":Label" est un "mot" prcd de deux points (":"), correspondant un repre utilis par la commande GotoUn saut inconditionnel "boucl "n'est pas "cassable" autrement que parCTRL+CUn saut inconditionnel peut aussi tre utilis pour sauter des morceaux decodeUn saut inconditionnel peut-tre utilis avec la commande "IF" pour excuterou ne pas excuter du code en fonction d'une condition.5) Excution conditionnelle la commande "IF"Voici une commande qui permet d'introduire des conditions dans les fichiers batch.Si la condition formule est remplie, le reste de la ligne de commande est excute, etle programme continue normalement, sinon le reste de la ligne n'est pas excut, et leprogramme continue galement.Attention : seul la fin de la ligne est excute, par consquent seule 1 seule commandepeut-tre conditionnelle, ce qui peut parfois poser des problmes. Dans ce cas, utilisezla commande GOTO pour aller un endroit particulier si la condition est remplie.Syntaxe d'utilisation :If ""=="" Attention il est important de :-Toujours encadrer la condition et la valeur tester par des guillemets,-De veiller utiliser, lors d'un test, le double signe gal (== au lieu de =)-Se rappeler que "" reprsente une seule commande executer.Vous pouvez bien sur comparer des variables avec des valeurs ou comparer desvariables ensembles, mais n'oubliez pas de les encadrer par des guillemets.Pourquoi ? Parce qu' l'excution, la valeur des variables vient remplacer leur criture,et si une variable est nulle, MS-DOS gnre une erreur car il ne peut comparer un termequi n'existe pas. Par compte, s'il y a des guillemets, MS-DOS "comprend" qu'il fait unecomparaison avec une variable vide.Exemple :If "%1"=="/AIDE" ECHO Ce texte sera afficheIci, on va tre amen comparer le contenu de la variable d'environnement paramtren1 avec le texte "/AIDE". Si ceux ci sont identiques, un texte sera affich l'cran.Attention la diffrence majuscules/minuscule. Mme si nous avons dit plus hautque MS-DOS ne faisait pas la diffrence entre les commandes crites en majuscules etcelles crites en minuscules, il diffrencie tout de mme les contenus des variables comparer. Par exemple, si l'utilisateur entr "/Aide" ou "/aide" au lieu de "/AIDE", lacondition ne sera pas valide.Vous pouvez associer d'autres conditions la commande IF. Voici les possibilitsdont vous disposez :IF NOT ConditionVrifie si la condition est remplie. Si oui, la ligne suivante est traite, sinon, lereste de la commande est execute.C'est en fait "l'inverse" de la commande IF.Exemple :If not "%ScoreJoueur"=="%ScoreNormal" echo Vousetes un nulIF EXIST FichierVrifie l'existence du fichier dsign. Si il existe, le reste de la ligne est trait,sinon on passe la ligne suivante. Ce type de commande peut-tre aussi utilissous la forme "If not exist", dans ce cas le reste de la commande est trait que sile fichier n'existe pas. Il est aussi important de noter que vous n'tes pas obligd'utiliser des guillemets puisque le paramtre reprsentant le fichier ne peut-trenul.Exemple :If exist c:\Autoexec.bat Copy autoexec.batautoexec.oldIF ERRORLEVELVrifie le numro de message d'erreur.Des commandes MS-DOS renvoient un numro spcial au fichier batch en casde problme ou d'erreur, dsign par ERRORLEVEL. ERRORLEVEL vauttoujours0 si aucune erreur ne s'est produite. MS-DOS excute le reste de laligne si ERRORLEVEL est gal ou suprieur la valeur spcifie.ATTENTION. Si vous devez tester plusieurs valeur de ERRORLEVEL, testezles de la plus grande la plus petite (ex : if errorlevel 255.. if errorlevel 100 iferrorlevel 50, etc) car comme dit ci-dessus, MS-DOS excute le reste de laligne si ERRORLEVEL est gal ou suprieur la valeur spcifie.Il n'y a pas besoin de signe "=" entre errorlevel et le nombre reprsentant savaleur.Exemple :Format a:If errorlevel 3 echo Vous avez annule FORMAT parCtrl+C !Utilisation avec la commande GOTO :Nous avons utilis la commande IF pour introduire des questions dans les fichiersBatch. Il serait souhaitable maintenant d'utiliser plusieurs commandes en fonction duresultat de la question.Voil comment nous allons procder :If "" == "" Goto SuiteCommande 1Commande 2:SuiteCommande 3Ainsi, si A=2, les commandes 1, 2 et 3 seront excutes , sinon, la commande 3 seraexcute et les commandes 1 et 2 vites.If not "%1"=="/?" Goto SuiteEcho Voici l'aide de ce programmeEcho Bla bla bla bla:SuiteEcho Pour commencer, pressez une touchePauseDans le cas si dessus, si le paramtre envoy au batch n'est pas "/?"; les commandesaprs "Suite" sont executes. Sinon, le texte d'aide est affich.A retenirIF permet d'agir diffremment suivant qu'une condition est vraie ou fausseIF n'accepte qu'une seule commande sa droite, c'est pour cela que lacommande "Goto" sera rgulirement utilise, pour excuter ou non certainesparties du Batch.Il y a diffrentes formes du IF : IF, IF EXIST, IF errorlevel et IF NOT quipeuvent tre combines.6) BouclesAprs avoir fait connaissance avec une technique de la programmation des sautsinconditionnels (Goto), en voici une autre.Nous allons crer un petit batch qui va afficher successivement les chiffres 1 4.Ecrivez le fichier batch suivant :@echo offfor %%A in (1 2 3 4) Do Echo C'est le nombre %%ACe fichier Batch contient une boucle FORDO. A quoi sert-elle ? Tout d'abord, %%Aest utilis seulement en tant que nom de variable. Cette variable prend alors toutes lesvaleurs de la liste spcifie entre les parenthses : dans notre cas, %%A prend doncsuccessivement les valeurs 1, 2, 3, et 4. Les valeurs constituant la liste doivent trespares entre elles par des espaces, des virgules, ou des points-virgules.Ensuite, la commande qui suit immdiatement est excute avec la valeur prise par lavariable %%A. Dans notre cas, on verra l'cran le message "C'est le nombre" suivi dela valeur de la variable chaque excution de ECHO.Un autre intrt de cette commande est que les lments de la liste peuvent-tre desnoms de fichiers. Ainsi il est possible d'excuter une seule commande pour plusieursfichiers. Vous pouvez donc afficher l'cran plusieurs fichiers la fois avec un seulecommande qui est TYPE :FOR %%A IN (AUTOEXEC.BAT CONFIG.SYS) DO TYPE %%AVous pouvez aussi utiliser les caractres gnriques, par exemple :FOR %%A IN (*.TXT *.BAT ) DO TYPE %%ATous les fichiers texte et Batch s'afficheront l'cran.A retenirUne boucle FOR DOpermet d'utiliser une variable prenantsuccessivement toutes les valeurs d'une liste prdfinie, et l'utilisation de cettevariable dans des commandes DOS ou Batch standard.7) La compilationPowerBatch vous permet de compiler un fichier Batch, c'est dire de le transformer enun excutable binaire Windows (.exe ou .com).Un excutable prsente en effet plus d'avantages qu'un fichier Batch : vitessed'excution plus leve, code source "protg", format binaire inaltrable, etcLa compilation n'est pas assure par PowerBatch, elle est effectue par un logicielindpendant appel "Bat2exec". Ce dernier n'est pas compatible avec toutes lescommandes DOS et Batch, par consquent, testez bien le fichier compil avant de ledistribuer pour viter toute mauvaise surprise. Par exemple, la commande "CHOICE",n'est pas supporte par le compilateur.Compiler un fichier1) Crez ou ouvrez un fichier Batch. Dans notre exemple, il contient simplement :@echo offecho Bonjour, pressez une touchepause2) Choisissez la commande "Compiler" dans le menu "Fichier", puis nommez le fichierqui va tre cre.Une nouvelle fentre apparat :Cliquez sur "Compiler" pour compiler le fichier Batch.Un fichier ".com" sera cr, rsultat du code compil par Bat2exec.Compilation sans erreurSi toutes les commandes ont t supportes, et que Bat2Exec n'a rencontr aucuneerreur, PowerBatch affiche les messages : puis la boite de dialogue :Compilation avec erreurSi Bat2exec rencontre des erreurs lors de la compilation, il lui sera impossible de crerle fichier ".com".Si par exemple, nous introduisons une erreur dans notre code@echo offecho Bonjour, pressez une toucheGoto Bonjour (en effet, il y a un "Goto" qui pointe vers un label inexistant) et que nous essayons decompiler le code, nous obtenons ce message d'erreur :Cliquez sur "Oui" pour que Bat2exec vous montre l'erreur qu'il a rencontre, dans notrecas, on a :Il ne vous reste plus qu' reprendre votre code pour le corriger.Utilisez la barre d'tat situ sous la zone de texte de PowerBatch qui affiche la ligne encours pour dtecter d'ou vient l'erreur d'aprs le nde ligne transmis par Bat2exec.A retenirCompiler un fichier Batch, c'est transformer des commandes Batch en ducode machine directement executable par l'ordinateur : c'est donc transformerun fichier texte en un programme binaire d'extension ".com".La compilation est assure par un programme autonome nomm "Bat2exec".Si des erreurs de compilation surviennent, la cration du programme estinterrompue et ne peut tre recommence que si cette erreur est corrige.8) Les borduresL'art de "faire" les bordures dans un fichier Batch est trs apprci des connaisseurs etdes novices : quoi de plus esthtique d'encadrer un texte de cette facon :Pour cela, MS-DOS utilise tous les caractres "spciaux", c'est pour cela que dans lechapitre 1 nous vous avons conseill d'viter d'utiliser les caractres accentus tels que",," etcEn ralit, voil ce qu'il faut entrer dans un Batch pour faire cette bordure :Aulieud'entrercescaractreslamain,utilisezl'assistantcrateurdeborduresdePowerBatch (Dans le menu "Outil").Voici comment se prsente l'assistant son lancement :Commevouslevoyez,cetassistantcomporteunesorted'"encadrement"constitudeplusieurs images reprsentant un cadre fictif.Ilvousfaudraenfaitcliquersurlacasereprsentantlabordurevouluepourqu'elleapparaisse dans la zone de texte de la fentre.Pourcrerlabordurehaute(1coinhaut/gauche,8traitshorizontaux,et1coinhaut/doit), correspondant la ligne : vous cliquerez 1 fois sur la case :8 fois sur la case :et 1 fois sur la case :Ensuite, il vous faut aller la ligne.Cliquez sur "Retour chariot" pour crer une nouvelle ligne.Nous devons donc entrer la seconde ligne pour crer une bordure ressemblant :Cette bordure est constitue de : 1 ligne verticale, vous cliquerez donc 1 fois sur la casereprsentant un trait vertical, 8 espaces, vous cliquerez donc 8 fois sur la case "espace",puis 1 trait vertical, vous cliquerez donc 1 fois sur la case reprsentant un trait vertical.Ensuite, allez la ligne pour crer la dernire ligne de la bordure :Cette bordure est constitue de : 1 coin bas/gauche, 8 traits horizontaux, un coinbas/droit : vous utiliserez donc les cases de l'assistant appropries.La zone de texte de l'assistant contient maintenant :Ne nous proccupons pas pour l'instant du texte "Bonjour" intercaler dans la bordure.Notre bordure proprement parler est maintenant cre. Pour l'insrer dans le fichierBatch, cliquez sur :La fentre de l'assistant se ferme, et le code est maintenant copi dans le presse-papier.Collez ce code l'endroit voulu dans le batch l'aide de la commande "Coller" du menu"Edition".Dans votre Batch, vous avez maintenant :Pour afficher le fameux "Bonjour", il ne vous reste plus qu' l'intercaler dans la secondeligne, en veillant ce que les bordures verticales (reprsentes ici par des "") restentalignes avec les coins (ici , >>, ,et 1/4)On a donc maintenant notre bordure :Testez le fichier Et le rsultat est bien celui attendu !Par consquent, utilisez l'assistant crateur de bordures pour encadrer des textesautomatiquement, si vous ne souhaitez pas entrer manuellement les caractresspciaux affichant les bordures.Note : Il existe d'autres styles de bordures non supportes par l'assistant dePowerBatch. Dans ce cas vous devrez les rentrer manuellement.9) criture dans les fichiers BatchLe caractre de redirection ">"Ecrire dans des fichiersVous pouvez crire dans des fichiers, l'aide de commande Batch.Nous avons dit dans le chapitre 1 que la commande ECHO servait en fait "crire"quelque chose quelque part. Pour l'instant, nous nous sommes content d'"crire" surl'cran, mais rien ne nous empche de le faire sur le disque.Nous allons aussi utiliser les chevrons (">" ou ">" sera crit dans "c:\texte.txt". Si le fichier n'existe pas, il sera cr et les donnes y seront inscrites sans gnrerd'interruptions ou d'erreurs, sauf si le ou les rpertoires le contenant n'existent eux-mme pas. Le texte inscrire sera ajout la fin du fichier Une nouvelle ligne sera cre dans le fichier chaque fois que vous appellerez lacommandeExemple pratique : vous souhaitez excuter le programme StartServer.exe situ dansC:\www, au dmarrage de votre ordinateur. Il vous suffira d'crire :Echo C:\www\StartServer.exe>>C:\Autoexec.batLa commande DOS c:\www\StartServer.exe sera inscrite dans Autoexec.bat et lance chaque dmarrage.criture en mode "Ecrasement" (Output)Contrairement au mode d'ajout, le mode d'crasement efface toutes les donnesinscrites prcdemment dans le fichier, puis inscrit la ligne transmise.Nous allons utiliser 1 seul chevron, orient vers la droite, qui pointe vers le nom defichier utiliser :Echo Texte crire>c:\texte.txtComme prcdemment, tout le texte compris entre "Echo" et les ">>" sera crit dans"c:\texte.txt". Si le fichier n'existe pas, il sera cr et les donnes y seront inscrites sans gnrerd'interruptions ou d'erreurs sauf si le ou les rpertoires le contenant n'existent eux-mme pas Le contenu du fichier sera automatiquement effac. Toutes les donnes serontperdues et remplaces par le texte entre "echo" et ">"Par exemple, vous souhaitez sauvegarder le contenu d'une variable (Ici %CPT%) dansle fichier "score.dat" situ dans C:\MonJeu\Scores\ :Echo %CPT%>>C:\MonJeu\Scores\Score.datComme nous l'avons dit plus haut si le fichier n'existe pas, il sera cr et les donnes yseront inscrites sans gnrer d'interruptions ou d'erreurs sauf si le ou les rpertoires lecontenant n'existent eux-mme pas. Par consquent, si les dossiers "MonJeu" et"Scores" ne sont pas prsent sur le disque au moment de l'excution de la commande,MS-DOS affichera un message d'erreur et le fichier ne sera pas cre. Il va galement desoi que la variable CPT doit-tre prcdemment dfinie, en utilisant une commande dela forme Set CPT=20000 .Ecrire le rsultat d'une commande dans des fichiersVous pouvez inscrire le rsultat d'une commande DOS dans un fichier, avec les deuxmodes dcrits plus haut ("crasement" et "Ajout").Pour cela, vous n'avez qu' supprimer "Echo", et remplacer le texte crire dans lefichier par une commande MS-DOS.Par exemple :dir c:\*.*>>c:\listing.txtLe contenu du disque C:\ sera inscrit en mode "rajout" dans le fichier listing.txtLa redirection vers "nul""Nul" reprsente un priphrique virtuel inexistant. Utilis avec ">" et ">>", il permetd'"crire" le rsultat de commande vers rien du tout, c'est dire, en clair, de lesmasquer.Par exemple :Pause>NulLe texte normalement affich par la fonction pause ("Presser une touche pourcontinuer") n'est pas affich, seule la fonction demeure (l'utilisateur doit presser unetouche pour que le droulement du programme continue).Note : NUL peut tre aussi utilis pour tester si un lecteur existe, avec une commandede la forme if exists g:\NUL faitquelquechose , "if" testant siun fichier virtuel pouvant reprsenter n'importe quel lment en ralit sur le disqueexiste.10) Appel d'autres fichiers BatchLa commande CALL permet d'appeler un fichier Batch partir d'un autre fichier batch.Aprs avoir trait le fichier batch appel, le programme revient au premier fichier batchet l'endroit prcis o le fichier batch a t appel.Vous pouvez galement appeler un fichier batch partir d'un autre sans pour autantrevenir au fichier batch de dpart. Il suffit tout simplement d'appeler le fichier batch parson nom (ou son adresse) c'est dire sans CALL.Appel sans CALLVous pouvez appeler un fichier batch partir d'un autre en utilisant son nom. Le rsultatest que le batch appel est trait, mais il est impossible de revenir au batch de sortieprcdemment trait. On peut en quelque sorte parler de "liaison unilatrale".Exemple :C:\MesBatch\fichier.batAppel avec CALLUn batch X appelle un batch A un endroit prcis. CALL a pour rle de contrler queMS-DOS remarque bien le "point de saut" et revienne dans le batch appelant aprsavoir trait le batch appel.Le Batch A est donc utilis comme un sous-programme. Cette utilisation comporte unavantage majeur : on doit programmer une seule fois les routines batch et on peutensuite les appeler le nombre de fois que l'on veut partir de n'importe fichier Batch.Exemple :CALL c:\MesBatch\Routine1.bat11) Travail avec ERRORLEVELDe nombreuses commandes MS-DOS revoient une valeur de retour diffrente de 0quand une erreur se produit. Dans le fichier Batch, elle peut-tre consulte l'aide de lavariable ERRORLEVEL. ERRORLEVEL 0 signifie qu'aucune erreur ne s'est produite.Si vous programmez en C des extensions pour MS-DOS, vous pouvez renvoyer desvaleurs l'aide de l'instruction return.Cette valeur peut-tre teste avec IF, mais attention, il y a un lger point surveiller : sila valeur de retour est SUPERIEURE OU EGALE au numro indiqu la commandeest excute. Par consquent, si vous avez plusieurs ERRORLEVEL tester,commencez toujours par la plus grande, puis procdez par ordre dcroissant.Exemple : le fichier Batch suivant formate une disquette dans le lecteur A. Si une erreurse produit ou si le processus est interrompu avec CTRL+C, le fichier Batch renvoie unmessage d'erreur.@echo offformat a:if errorlevel 1 goto erreurgoto fin:erreurecho.Echo Formatage impossible !:finecho onSecond exemple. Remarquez que nous contrlons toujours la valeur la plus leve :Echo offFormat a:If errorlevel 4 goto erreur4If errorlevel 2 goto erreur2Echo Pas d'erreur, formatage effectuGoto fin:erreur4echo Lecteur ou parametre non valablegoto fin:erreur2echo Formatage interrompu avec CTRL+Cgoto fin:finecho onToutes les commandes DOS ne renvoient pas des valeurs d'erreur. Les commandesconcernes n'utilisent que certaines valeurs.12) 5 autres fonctions de PowerBatch1) Le test ligne, le test de bloc, le test pas pas,PowerBatch prsente diverses possibilites de test de vos fichiers batch : Le test ligne est obtenu en pressant la touche F8 (ou avec le menuProgramme>Deboggage) :Cette fonction vous permet de tester une seule ligne de votre fichier.Pour tester une ligne, vous devez entrer le numro de la ligne dans la zone de texte dela fentre.Vous pouvez automatiquement :-Afficher un echo de test, rappelant quelle ligne va tre excute-Dsactiver l'cho local-Effacer l'cran avant de commencer (commande CLS) Le test bloc est obtenu en pressant la touche F9 (ou avec le menuProgramme>Deboggage) :Cette fonction vous permet de tester un bloc de commandes, de la ligne X la ligne Y.Entrez la ligne de dpart dans la premire zone de texte, puis la ligne d'arret dans laseconde zone.Vous pouvez automatiquement :-Dsactiver l'cho local-Effacer l'cran avant de commencer (commande CLS)Le test pas pas est obtenu en pressant la touche F7 (ou avec le menuProgramme>Deboggage) :Ce mode vous permet de tester chaque ligne de code. Vous pourrez voir quelle lignedclenchera les erreurs, quelle valeur prendra les variables, etcVous devrez presser la touche "O" ou "N" chaque ligne, la touche "O" permettant decontinuer le texte, la touche "N" de le stopper.Pour commencer un test pas pas vous devez obligatoirement presser la touche "O" devotre clavier dans la fentre DOS qui s'affichera.2) Les modles BatchPowerBatch prsente 5 modles complets de Batch.Le plus utile est sans doute "Standard batch avec environnement tendu" car il permetde parer les erreurs dus un espace d'environnement insuffisant.De plus, y sont ajouts deux "macros", ensemble de commandes rgulirement tapes,soit en dbut de batch, soit en fin de batch : le dbut de script insre @echo off pourdsactiver l'cho local, puis cls pour effacer l'cran, et le fin de script rtabli l'cho l'aide de la commande echo on.3) L'assistant XCOPYLa commande XCOPY est une commande DOS permettant d'effectuer des copies avecplus d'options de la commande COPY. L'assistant XCOPY a t introduit dansPowerBatch afin de vous aider faire des copies de fichiers en utilisant des paramtreset des options valides.Vous pouvez lancer cet assistant l'aide du menu "Outils".4) La commande CHOICELa commande CHOICE permet d'introduire des entres clavier dans un batch. Attention,il n'est pas question d'entrer du texte, mais juste d'appuyer sur une touche et d'agir enfonction de la touche prsse, pour faire des messages du style : Pourcontinuer, pressez C, pour quitter, pressez QCet assistant vous permet d'utiliser cette commande de faon optimale, et configurerapidement des messages avec entre clavier.Vous pouvez lancer cet assistant l'aide du menu "Outils".5) Le convertisseur HTMLLe HTML est un langage "universel" de description de document, utilis notamment surInternet pour btir des pages Web.Ne croyez pas que le HTML est indissociable du Web, et que l'utilisateur doit treconnect sur Internet pour lire ce type de fichiers : il sera trs bien lu hors-ligne, chezune personne ne possdent mme pas Internet.L'avantage est que ce langage est lu par diffrents logiciels (navigateurs) sur la majoritdes systmes d'exploitation (Windows, MacOS, Linux). Utilisez donc la conversiondans ce format si vous voulez exporter le code d'un fichier Batch sur un autre ordinateursans altration du code; ou pour le transfrer par Internet, sur un site web, ou par e-mail.PowerBatch permet de mettre en relief le code converti (les commandes DOS serontdistingues, les commentaires mis en italique etc.). Il suffit de rpondre positivement ce message :Le fichier sera cre, et une nouvelle icne apparatra, ressemblant celle ci :Double-cliquez sur l'icne pour lancer le navigateur associ aux fichiers HTML (engnral Microsoft Internet Explorer)Pour finirJ'espre que vous avez suivi ce bref tutoriel avec plaisir, et que cette initiation laprogrammation en langage Batch ne vous a pas parue trop complique.Je vous conseille de trouver des d'autres didacticiels et documents prsentant desastuces de programmation et d'autres sujets non traits dans ce document. D'autre part,si vous souhaitez utiliser des commandes d'extensions MS-DOS pour vos batchs(saisie clavier, oprations logiques, tirages de nombres alatoires, etc) je vous invite tlcharger le toolkit Batch partir de http://www.astase.com4.ws .Si vous remarquez des erreurs, ou pensez que des complments sont ncessaires,merci de me contacter ([email protected])Bonne continuation !Rabusier