Académique Documents
Professionnel Documents
Culture Documents
Tutoriel Batch
Tutoriel Batch
VI] Boucles La commande For Do VII] La compilation Qu'est ce que la compilation Comment compiler un fichier Batch Les erreurs de compilation VIII] Les bordures Gnrer des bordures en utilisant l'assistant dans PowerBatch IX] Ecriture dans des fichiers criture en mode ajout criture en mode crasement criture de rsultats de commande Redirection vers le priphrique virtuel NUL X] Appel d'autres fichiers Batch Utilisation de fichiers Batch come sous-programme Lancement d'autres fichiers Batch XI] Travail avec ERRORLEVEL Utilisation de la commande ERRORLEVEL XII] 5 autres fonctions de PowerBatch Test ligne, test bloc, test pas pas Les modles L'assistant XCOPY La commande CHOICE Le convertisseur HTML XIII] Lintgration MS-DOS sous Windows XIV] Programmation avance.
Avertissement : Ce tutoriel n'a pas pour vocation de remplacer un livre ddi la programmation Batch, mais surtout d'initier le programmeur dbutant cette technique. Il n'est pas exempt d'erreurs, si vous en reprez, merci de me contacter par mon e-mail
rabusier@aol.com
La version la plus rcente de ce manuel sera toujours publie sur http://www.astase.com
1) Introduction
Basiquement, un fichier Batch n'est rien de plus qu'un fichier texte contenant des commandes 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 connaissance minimum de l'environnement DOS. En fait, un fichier Batch contient simplement une suite de commandes que vous pourriez taper sous l'invit (prompt) du DOS, chaque nouvelle ligne du fichier correspondant une nouvelle commande. Nanmoins, certaines commandes ne sont qu'utilisables dans les 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 de commandes. titre d'exemple, nous pourrions voquer le changement de rpertoire et peut-tre aussi la commande FORMAT qu'on fait souvent suivre de la commande CHKDSK pour vrifier si la disquette a bien t formate.
Exemple :
Imaginons un fichier batch contenant les commandes suivantes : cd \ cd games superjeu.exe Cela 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 rend disponible pour le programmeur un grand nombre de fonctions. Enfin, leur taille est relativement lgre par rapport d'autres programmes, ce qui facilite leur transfert sur diffrents disques et supports de stockage.
Cependant Le langage Batch n'est pas compil, il est interprt par COMMAND.COM ce qui rend plus lent l'excution de programmes batch par rapport des applications 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 de chanes de caractres, d'oprations mathmatiques, etc n'existent pas sous DOS, ce qui implique l'usage de programmes externes (s'ils existent, selon les cas).
>Fichier
Un fichier est un ensemble de donnes variables enregistrs sur un priphrique de stockage. La taille et la nature du contenu des fichiers varient suivant le type de contenu, lapplication cratrice ainsi que lutilisation que lon peut en faire. Un fichier peut contenir par exemple une image, un texte, un son, une animation ou bien encore les quatre en mme temps. Pour des raisons techniques, le DOS rel , cest--dire celui excut lors du dmarrage en mode MS-DOS dune machine sous Windows ne gre que des noms de fichiers de 8 caractre. Par exemple, alors que sous Windows un nom de fichier Lettre Elise serait correcte, il faudra vous contenter de LETTRE~1 sous DOS. Lespace est galement proscrit ainsi que dautres caractres comme * ou / qui servent en interne MS-DOS. Le tilde ( ~ ) sert une ventuelle discrimination des noms fichiers longs automatiquement raccourcis par le DOS : en effet, Lettre Elise 1 et Lettre a Elise 2 se transformeraient naturellement tous deux sous DOS en LETTREAE . MS DOS nommera donc LETTRE~1 le premier fichier, et LETTRE~2 le second fichier. Le nom nexcde pas 8 caractres, et les deux fichiers sont distincts. Enfin, MS-DOS (comme Windows) identifie le type de fichier par une extension, cest dire un code 3 caractre spar du nom de fichier par un point. Par exemple, un fichier dextension txt reprsente un fichier texte, un fichier dextension doc un document cr avec Microsoft Word, et un fichier bmp une image bitmap. Ces extensions sont rserves pour un type de donnes dfinies, cest pour cela quil est dconseill de les modifier manuellement (la modification de lextension ne changeant videmment pas le type du contenu du fichier !) La longueur totale dun nom de fichier sous MS-DOS est donc de 11 caractres (on pourra ventuellement parler de format 8+3). Voici quelques noms de fichiers valides : TEXTE.TXT (fichier TeXTe), MSDOS.SYS (fichier SYStme), MSPAINT.EXE (programme EXEcutable), etc.
>Disques et lecteurs
Toutes les donnes sur lesquelles vous travaillez doivent tres stocks sur un disque de stockage, cest--dire un support permanent permettant lcriture, la lecture et la sauvegarde de votre travail. MS-DOS ne reprsente pas les disques, mais leurs lecteurs. Ainsi, il fait correspondre des lettres aux lecteurs installs sur votre machine. Par convention, le lecteur de disquettes est appel a , le disque dur principal c . Dautres lecteurs peuvent coexister, comme un second lecteur de disquette en b ou un lecteur de CD-ROM en e , etc Avant daccder vos fichiers, vous devrez donc toujours spcifier un nom de disque pour que MS-DOS puisse situer le priphrique sur lequel vous souhaitez travailler. Le nom des lecteurs est toujours suivi de deux points. Ainsi, le lecteur de disquettes est accessible en a : , et le disque dur en c : , etc. Certains mdias exploits par les lecteurs peuvent tre en lecture seule ou protgs en criture, ce qui signifie que vous ne pourrez que lire les donnes quils contiennent, et non crire quelque chose par-dessus. En outre, vous devez veiller dans le cas de lecteurs amovibles (a: par exemple) ce quil possde un disque si vous souhaitez sauvegarder des donnes dans ce dernier, au risque de provoquer une erreur de priphrique.
>Arborescence
Larborescence est lensemble de tous les rpertoires d un mme disque. La base dun disque (cest--dire un niveau o nous nappartenons aucun rpertoire) est appel racine de ce disque, et symbolise par un \ . Larborescence est donc lensemble des rpertoires partir de la racine dun disque. Larborescence est souvent reprsent de manire schmatique, afin de visualiser niveaux et sous-niveaux dun disque. Ainsi, un disque d : contenant quatre rpertoires : DOS , DOCS , ARCHIVES , et DIVERS , dont le dossier DOCS contenant lui-mme un sous dossier TEST contenant lui-mme un autre dossier FILES sera affich lcran laide de la commande DOS tree de cette manire :
>Chemin daccs
Pour accder un fichier sur un disque, il ne suffit pas de connatre juste son nom, il faut aussi, dans la plupart des cas connatre sa localisation exacte dans larborescence. Un fichier texte FICHIER.TXT sur c : , dans le rpertoire TEST contenu luimme dans DEMO aura un chemin daccs correspondant la concatnation des noms de dossiers et du disque, spars par des dlimiteurs \ : C:\TEST\DEMO\FICHIER.TXT
>Commandes
Pour que MS-DOS comprenne ce que vous voulez faire, il faudra communiquer avec lui par des mots standardiss, analyss par un programme nomm interprteur . tant des mots cls rservs, aucun fichier ou dossier ne doit se nommer par le nom dune commande. De plus, les commandes existent souvent sous deux formes : abrges et entires (exemple : MKDIR et MD) Une commande interne est un mot reconnu par l'interprteur qui constitue un lment du langage MS-DOS. Une commande externe est en ralit un programme fourni avec l'interprteur. Il est plac dans un rpertoire spcifique afin que MS-DOS puisse le reconnatre comme un lment du langage. Il permet une volution, voire une meilleure souplesse du langage. Par exemple, la commande " subst" qui permet d'affecter un nom d'unit logique (lettre de lecteur) un rpertoire d'un disque, est en fait un programme excutable.
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 quel priphrique (et mme dans un fichier). Dans notre cas, nous l'utilisons pour faire sortir des donnes sur l'cran d'un ordinateur, nous allons donc dire pour l'instant que ECHO est une commande permettant d'afficher du texte l'cran. Remarquez l'absence de guillemets, par rapport d'autres de langages de programmation exigeant que les variables littrales soient distingues par ces derniers. NOTE IMPORTANTE : MS-DOS n'est pas sensible pour les commandes la diffrence entre les majuscules et les minuscules, que vous criviez echo ou Echo, ou bien encore ECHO ou EcHo, le rsultat sera le mme. PowerBatch possde une fonction pratique permettant de tester le fichier Batch en cours. Pressez F6, ou excutez la commande "Test du fichier courant" situ dans le sousmenu "Tests" du menu "Programme". Une fentre DOS apparat, avec le rsultat suivant :
Le DOS nous a bien affich notre rsultat, MAIS il apparat comme si on venait d'entrer les commandes sparment sous DOS : En effet, on distingue l'invite (gnralement c:\Program Files\PowerBatch>), la commande (Echo Hello, World !), son rsultat dessous, puis un second invite. Nous souhaiterions que seuls les rsultats des commandes apparaissent l'cran. Il va falloir utiliser l'cho local . L'cho local est une variable qui, selon quelle est sur on (active) ou off (dsactive), permet ou de voir uniquement les rsultats des commandes entres. Ci-dessus, l'cho local est activ, puisque l'on voit l'invite DOS et les commandes comme si on les avait taps sous DOS.
Echo off
Qu'est ce que vous venez d'crire ? Vous avez crit la commande "Echo" permettant d'afficher du texte l'cran, mais vous 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 permet d'activer cet cho. Vous avez donc dans le cas prsent dsactiv l'cho local. Testez de nouveau le fichier en crivant donc :
Voil comment le programme s'est droul : L'cho est sur ON : le programme affiche toutes les commandes avant de les excuter. L, le programme a rencontr la commande "echo off". Il l'a affich, puis l'a excut. L'cho est maintenant sur OFF, il est dsactiv. Le programme rencontre la commande "Echo Hello, World !". Il se contente donc d'afficher "Hello, World !" l'cran.
Nanmoins, on voit toujours l'invite en haut, ainsi que "echo off". Il nous faut donc trouver un moyen de les supprimer. La commande "@" est adapt notre cas : elle permet de dsactiver immdiatement l'cho pour une ligne, il suffit juste de faire prcder la ligne de ce signe. On a donc :
A retenir
La 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.
Information : lexcution de la commande echo sans paramtres permet dafficher lcran si Echo est sur ON ou si il est sur OFF.
@Echo off Echo 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 code Essayons de prendre les bonnes habitudes tout de suite Pour vous et sur le moment, votre code vous parat parfaitement clair. Mais le sera til dans un mois ou lu par une autre personne ? Il est donc ncessaire d'insrer des remarques, appeles "commentaires" dans vos fichiers. La commande "REM" (REMark) est l pour vous ! Il suffit simplement d'apposer votre commentaire aprs la commande, par exemple :
@echo off REM Formatage de la disquette Format a: REM Creation du dossier Backup sur a:\ Mkdir a:\backup\ REM Copie des fichiers Copy c:\backup\*.* a:\backup\*.*
La commande REM ne sera pas excute, mais vous aidera mieux comprendre ce que 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 des symboles :
Utilisez plutt la fonction d'accentuation de PowerBatch (Menu "Commandes", "sousmenu "Caractres spciaux", articles "Accent grave", "Accent circonflexe", "Accent aigu", etc.)
La commande CLS La commande CLS (Clear the Screen) permet deffacer les donnes affiches actuellement lcran, ce qui nettoie la zone de texte. Les textes prcdemment lcran sont effacs, et les donnes recommencent tre affiches en haut gauche de la fentre DOS. Utilisez rgulirement CLS pour plus de lisibilit dans lexcution de vos batchs. Information : Si la commande CLS est la dernire de votre fichier batch, alors la fentre DOS sera automatiquement ferme par Windows, sans besoin dintervention manuelle pour que le programme soit arrt (clic sur la case de fermeture)
A retenir
La commande "echo." Pour afficher une ligne vide La ncessit de commenter son code (Commande REM) viter d'utiliser directement des caractres spciaux, comme des caractres accentus. La commande CLS pour effacer lcran
Astuce pour PowerBatch : Utilisez l'article "Standard Batch" du menu "Modle" pour crer un batch automatiquement avec @echo off.
@echo off echo Listage du disque C:\ dir c: echo Va dans le dossier jeux cd jeux echo Lance SuperJeux.exe Superjeux.exe
Notre but n'est pas de vous apprendre toutes les commandes MS-DOS, vous tes cens 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 le cas des commandes les plus communes comme DIR, CD, etc Soit la commande est en ralit un excutable DOS, c'est--dire que c'est une application qui est intgre sous la forme d'une commande standard. C'est sur ce cas que nous allons nous pencher.
1) Comment un excutable peut-tre considr comme une commande ? Une commande est par dfinition un "mot" que l'on peut entrer o que l'on soit (que l'on soit dans le rpertoire A ou le rpertoire B), et qui ne ncessite pas qu'on indique son chemin d'accs, et qui bien sr agit physiquement ou logicielement sur votre ordinateur directement ou l'aide de paramtres. RAPPEL : Pour lancer un fichier .EXE, .COM ou .BAT, il n'est pas ncessaire de prciser l'extension de ces derniers. Pour lancer Superjeu.exe, vous n'tes pas oblig de taper :
Superjeux.exe
Vous 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" dans C:\DOSSIER_DE_WINDOWS\COMMAND\, donc, dans la majorit des cas, dans C:\WINDOWS\COMMAND\ Si vous possdez un fichier .exe, .com ou .bat, et que vous souhaitiez l'tablir en tant que commande DOS, copiez le simplement dans ce rpertoire. Par exemple, prenons l'exemple de DisBonjour.bat
Il contient une commande permettant d'afficher l'cran "Bonjour". Copiez-ce fichier dans C:\WINDOWS\COMMAND\ Tapez ensuite DisBonjour.bat => Votre texte apparat l'cran Plus fort : tapez simplement DisBonjour => Votre texte apparat aussi l'cran
Rsultat : Pour "ajouter" des commandes MS-DOS, copiez des excutables DOS d'extension .bat, .exe, ou .com dans le rpertoire "COMMAND" du dossier de Windows.
2) La variable PATH et les autres rpertoires d'ajout possibles D'autres rpertoires peuvent dfinir des chemins d'accs potentiels des commandes. Pour voir les chemins d'accs possibles installs sur votre machine, tapez "path" dans une session MS-DOS. Voil un exemple possible de rsultat :
On peut voir que les rpertoires d'accs sont au nombre de 3, et spars par des points-virgules : C:\Windows (2 fois, il s'agit sans doute d'une erreur d'un logiciel) C:\Windows\Command C:\Cntx Cela veut dire que n'importe quel fichier .exe, .bat, ou .com peut tre lanc comme une commande dans l'environnement DOS : Conclusion : Pour "ajouter" des commandes MS-DOS, copiez des excutables DOS d'extension .bat, .exe, ou .com dans un des rpertoires spcifis par la 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 dtails plus tard) que cette variable reprsente une valeur accessible n'importe ou et n'importe quand dans l'environnement DOS. Dans le cas actuel, cette variable est modifiable, nous allons donc inclure un autre chemin d'accs dans cette variable. REGLE 1 : Une variable d'environnement est identifie la lecture lors d'une dfinition par deux "%" autour de lui. En effet, l'excution, MS-DOS remplace le contenu d'un "mot " entour par deux "%" par sa valeur. Dans le cas actuel, "Path" peut-tre lue en appelant "%PATH%". Pour ajouter un chemin d'accs, on fera donc : PATH=%PATH%;CHEMIN_A_AJOUTER En effet : Le premier PATH est en criture (pas besoin de %PATH%) Le second PATH est destin inclure l'ancien path, et doit contenir la variable PATH (d'o %PATH%) Le point-virgule est destin sparer le chemin prcdent du nouveau chemin. CHEMIN_A_AJOUTER reprsente le chemin d'accs ajouter Imaginons que la variable PATH contienne "C:\WINDOWS;C:\WINDOWS\COMMAND". Nous souhaitons ajouter le chemin C:\MESJEUX\SUPERJEUX On inscrira donc dans un fichier Batch ou directement dans l'interprteur COMMAND.COM : PATH=%PATH%;C:\MESJEUX\SUPERJEUX Ce qui donne pour le DOS : PATH=C:\WINDOWS;C:\WINDOWS\COMMAND ;C:\MESJEUX\SUPERJEUX Maintenant, imaginons que vous souhaitez lancer Superjeu.exe situ dans C:\MESJEUX\SUPERJEUX. Or, on vient de mettre le chemin dans le Path.
Superjeu.exe
Ou, comme une commande standard :
Superjeu
Cela signifie aussi que tous les autres fichiers situs dans le "%path%" pourront-tre lancs comme des commandes standard. Par exemple, si "c:\WINDOWS" est dans le Path, entrez Winver pour lancer C:\windows\winver.exe et afficher la version de Windows (Bien sur ce programme n'est pas 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 /C FORMAT 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 C:\WINDOWS\COMMAND un programme (FORMAT.EXE) localis dans
Ce programme reoit donc comme argument tous les paramtres envoys par l'intermdiaire du DOS. Votre Batch peut, on le verra plus en dtail plus tard, recevoir neuf paramtres spars par des espaces, comme un programme standard comme FORMAT.EXE peut le faire. Ce sont des variables d'environnement spciales destines spcifiquement au fichier Batch qui est utilis : chaque Batch peut donc lire les arguments, si il y en a, qui lui sont envoys lors de son lancement. RETENIR : Dans Windows, il est impossible d'envoyer des paramtres en double cliquant sur un fichier. Pour envoyer des paramtres un fichier dans Windows, vous devez le faire soit par un raccourci, en ditant la "destination" du lien, soit par un fichier PIF (*.pif) permettant se dfinir 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 au programme, %1 le premier paramtre, %2 le second paramtre jusqu' %9 qui contient le neuvime paramtre envoy au batch. Exemple : crez avec PowerBatch un fichier ressemblant celui-ci dessous, puis utilisez la fonction "Test avec paramtres" de PowerBatch (Menu "Programme", sous-menu "Tests") pour envoyer des paramtres au fichier (ou procdez par l'intermdiaire du DOS) :
@echo off echo L'adresse de ce fichier est %0 echo Le premier parametre est %1 echo Le second parametre est %2 echo Le troisieme parametre est %3 echo Le quatrieme parametre est %4
Dans 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 le second, et "C:\" pour le troisime. Sous DOS, vous pouvez lancer le fichier en le faisant prcder de son adresse, puis en envoyant les paramtres, par ex :
Ce qui donne :
Ce qui est bien sr parfaitement logique. Nous apprendrons plus tard nous en servir dans un programme : tester si le fichier a des paramtres, agir en fonction, etc
A retenir
Mme si ces notions peuvent vous sembler un peu disparates, elles sont importantes pour aborder la suite de la formation : Une commande peut-tre un fichier, dont le rpertoire est inscrit dans la variable %PATH% Un fichier peut-tre lanc sans prciser son chemin d'accs si son rpertoire est dans la variable %PATH% La variable %PATH% est modifiable par le DOS ou un fichier Batch Comment un fichier peut recevoir des arguments, et comment y accder via les variables spciales %x
Information : La commande shift permet de dcaler le contenu des variables spciales %x. Par exemple, le contenu de la variable %9 passe dans %8, %8 dans %7, etc.
3) Variables d'environnement
Une variable d'environnement, nous l'avons dj dit plus haut, reprsente une valeur accessible n'importe ou et n'importe quand dans l'environnement DOS. Pour visualiser les variables d'environnement actives sur votre ordinateur, il vous suffit de taper la commande set ce qui donne par exemple :
Prcisons que, dans le langage Batch, la seule facon de stocker des donnes est de les associer des variables d'environnement. Il n'existe pas de variables "locales" que d'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 de dmarrage de Windows), COMSPEC (Adresse de l'interprteur de commandes), PATH et WINDIR (Dossier de Windows). Il est important de savoir que le contenu de ces variables est dtruit une fois l'ordinateur teint ou la session DOS termine. Il faut donc, si ces variables doivent tre prsentes chaque session et si elles ne sont pas automatiquement dclares par Windows, les dfinir dans Autoexec.bat (qui est lui lanc chaque dmarrage). Par exemple, la variable "BLASTER" est dfinie dans Autoexec.bat Dfinir une variable d'environnement Pour dfinir une variable d'environnement, faites : Set NomVariable = Valeur de la variable Nous souhaitons dfinir une variable "VersionWindows" contenant la version de Windows (Dans notre cas Windows 98 SE (Seconde Edition)) Nous allons donc taper dans le DOS, ou crire dans un fichier batch :
Set VersionWindows = 98 SE
Validez la commande puis excutez le Batch. Il semble que rien ne se passe : normal, cette commande ne produit pas de rsultat visible l'cran. Pour voir si notre ajout a t pris en compte, il suffit de taper "set" pour voir si notre variable a t ajoute la liste de celles dj dfinies sur notre ordinateur.
Notre variable a bien t ajoute. Notons que : Cette variable ne sera dtruite qu' l'extinction de l'ordinateur ou la fin de la session DOS N'importe quel autre programme peut lire, modifier ou rcrire sur cette variable.
Redfinir une variable d'environnement Il suffit de rcrire la commande avec une nouvelle valeur, qui viendra craser l'ancienne, par exemple :
Supprimer une variable d'environnement Il faut simplement assigner une valeur nulle la variable, par exemple :
Set VersionWindows =
La variable est maintenant supprime. Utiliser une variable d'environnement Pour 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'argument reprsentant le nom de la variable dfinir : en effet, on ne lit pas la valeur de la variable, 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 Bits
La 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 la variable "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 retenir
Qu'est-ce qu'une variable d'environnement Comment dfinir, modifier ou supprimer une variable d'environnement Encadrer une variable de "%" pour lire sa valeur Les variables d'environnement se perdent l'extinction de Windows ou la fermeture de la session DOS. Les variables qui doivent donc tre dfinies chaque dmarrage devront donc tre dfinies dans Autoexec.bat
Dans PowerBatch, vous pouvez facilement agir sur les variables en utilisant le sous menu "Variables" du menu "Commandes"
4) Saut inconditionnel
Le langage Batch vous permet d'utiliser des commandes de boucle, c'est a dire de rpeter un bloc de commandes indfiniment. Nous allons tudier dans ce chapitre la commande "Goto". C'est une commande de saut inconditionnelle, qui ne peut tre arrte (ou l'aide de commandes que vous ne connaissez 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. Cliquez sur "Oui" pour quitter le programme. En principe, les lignes de commande sont traites les unes aprs les autres dans un fichier Batch. Toutefois, dans certains cas, on est oblig de sauter des lignes pour reprendre le traitement un autre endroit du fichier. C'est dans ces cas l que nous allons utiliser les commandes de boucle. On associe souvent une commande de saut une commande d'instruction conditionnelle (voir chapitre suivant), ou lorsqu'un bloc de commande doit tre rpt indfiniment. C'est sur ce cas que nous allons nous pencher pour l'instant. Notre premire boucle Pour faire une boucle, il nous faut deux commandes : La premire est un "Label", c'est--dire une tiquette pose dans le programme 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 se rendre l'tiquette du mme nom.
Par exemple : Commande 1 Commande 2 Label BONJOUR Commande 3 Commande 4 Commande 5 Goto BONJOUR Les commandes 1, et 2, sont excutes une fois, alors que les autres commandes sont excutes en boucle, puisque le programme rencontre "GOTO", va au label du mme nom, continue, rencontre nouveau "Goto", reva au label , etc
Un label se prsente sous la forme : :NomDuLabel Le 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 compos d'espaces.
Par exemple
:Debut est un bon nom pour un label Un "Goto" se prsente sous la forme de cette commande suivie du nom du label, par exemple : Goto Debut pour aller au label "Dbut".
Allons y pour une boucle infinie ! Nous voulons afficher "Hello, World !" en boucle. Nous crirons donc :
A retenir
La commande "Goto" permet d'aller au label du mme nom La marque ":Label" est un "mot" prcd de deux points (":"), correspondant un repre utilis par la commande Goto Un saut inconditionnel "boucl "n'est pas "cassable" autrement que par CTRL+C Un saut inconditionnel peut aussi tre utilis pour sauter des morceaux de code Un saut inconditionnel peut-tre utilis avec la commande "IF" pour excuter ou ne pas excuter du code en fonction d'une condition.
Syntaxe d'utilisation :
If "<condition>"=="<valeur>" <action>
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 "<action>" reprsente une seule commande excuter.
Vous pouvez bien sur comparer des variables avec des valeurs ou comparer des variables 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 terme qui n'existe pas. Par compte, s'il y a des guillemets, MS-DOS "comprend" qu'il fait une comparaison avec une variable vide. Exemple :
IF NOT Condition
Vrifie si la condition est remplie. Si oui, la ligne suivante est traite, sinon, le reste de la commande est excute. C'est en fait "l'inverse" de la commande IF. Exemple :
IF EXIST Fichier
Vrifie 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 utilis sous la forme "If not exist", dans ce cas le reste de la commande est trait que si le fichier n'existe pas. Il est aussi important de noter que vous n'tes pas oblig d'utiliser des guillemets puisque le paramtre reprsentant le fichier ne peut-tre nul.
Exemple :
Copy
autoexec.bat
IF ERRORLEVEL
Vrifie le numro de message d'erreur. Des commandes MS-DOS renvoient un numro spcial au fichier batch en cas de problme ou d'erreur, dsign par ERRORLEVEL. ERRORLEVEL vaut toujours 0 si aucune erreur ne s'est produite. MS-DOS excute le reste de la ligne si ERRORLEVEL est gal ou suprieur la valeur spcifie. ATTENTION. Si vous devez tester plusieurs valeur de ERRORLEVEL, testez les de la plus grande la plus petite (ex : if errorlevel 255.. if errorlevel 100 if errorlevel 50, etc) car comme dit ci-dessus, MS-DOS excute le reste de la ligne si ERRORLEVEL est gal ou suprieur la valeur spcifie. Il n'y a pas besoin de signe "=" entre errorlevel et le nombre reprsentant sa valeur. Exemple :
Ainsi, si A=2, les commandes 1, 2 et 3 seront excutes , sinon, la commande 3 sera excute et les commandes 1 et 2 vites.
If not "%1"=="/?" Goto Suite Echo Voici l'aide de ce programme Echo Bla bla bla bla
A retenir
IF permet d'agir diffremment suivant qu'une condition est vraie ou fausse IF n'accepte qu'une seule commande sa droite, c'est pour cela que la commande "Goto" sera rgulirement utilise, pour excuter ou non certaines parties du Batch. Il y a diffrentes formes du IF : IF, IF EXIST, IF errorlevel et IF NOT qui peuvent tre combines.
6) Boucles
Aprs avoir fait connaissance avec une technique de la programmation des sauts inconditionnels (Goto), en voici une autre. Nous allons crer un petit batch qui va afficher successivement les chiffres 1 4. Ecrivez le fichier batch suivant :
A retenir
Une boucle FOR DOpermet d'utiliser une variable prenant successivement toutes les valeurs d'une liste prdfinie, et l'utilisation de cette variable dans des commandes DOS ou Batch standard.
7) La compilation
PowerBatch vous permet de compiler un fichier Batch, cest--dire de le transformer en un excutable binaire Windows (.exe ou .com). Un excutable prsente en effet plus d'avantages qu'un fichier Batch : vitesse d'excution plus leve,code source "protg", format binaire inaltrable, etc La compilation n'est pas assure par PowerBatch, elle est effectue par un logiciel indpendant appel "Bat2exec". Ce dernier n'est pas compatible avec toutes les commandes DOS et Batch, par consquent, testez bien le fichier compil avant de le distribuer pour viter toute mauvaise surprise. Par exemple, la commande "CHOICE", n'est pas supporte par le compilateur. Compiler un fichier 1) Crez ou ouvrez un fichier Batch. Dans notre exemple, il contient simplement :
Cliquez sur "Compiler" pour compiler le fichier Batch. Un fichier ".com" sera cr, rsultat du code compil par Bat2exec.
Compilation sans erreur Si toutes les commandes ont t supportes, et que Bat2Exec n'a rencontr aucune erreur, PowerBatch affiche la boite de dialogue :
Compilation avec erreur Si Bat2exec rencontre des erreurs lors de la compilation, il lui sera impossible de crer le fichier ".com". Si par exemple, nous introduisons une erreur dans notre code
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 en cours pour dtecter d'ou vient l'erreur d'aprs le n de ligne transmis par Bat2exec.
A retenir
Compiler un fichier Batch, c'est transformer des commandes Batch en du code machine directement excutable par l'ordinateur : c'est donc transformer un 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 est interrompue et ne peut tre recommence que si cette erreur est corrige.
8) Les bordures
L'art de "faire" les bordures dans un fichier Batch est trs apprci des connaisseurs et des 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 le chapitre 1 nous vous avons conseill d'viter d'utiliser les caractres accentus tels que ",," etc En ralit, voil ce qu'il faut entrer dans un Batch pour faire cette bordure :
Au lieu d'entrer ces caractres la main, utilisez l'assistant crateur de bordures de PowerBatch (Dans le menu "Outil").
Voici comment se prsente l'assistant son lancement : Comme vous le voyez, cet assistant comporte une sorte d'"encadrement" constitu de plusieurs images reprsentant un cadre fictif. Il vous faudra en fait cliquer sur la case reprsentant la bordure voulue pour qu'elle apparaisse dans la zone de texte de la fentre. Pour crer la bordure haute (1 coin haut/gauche, 8 traits horizontaux, et 1 coin haut/doit), correspondant la ligne :
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 case reprsentant 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 coin bas/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 fichier Batch, cliquez sur :
La fentre de l'assistant se ferme, et le code est maintenant copi dans le pressepapier. 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 seconde ligne, en veillant ce que les bordures verticales (reprsentes ici par des "") restent alignes 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 textes automatiquement, si vous ne souhaitez pas entrer manuellement les caractres spciaux affichant les bordures. Note : Il existe d'autres styles de bordures non supportes par l'assistant de PowerBatch. Dans ce cas vous devrez les rentrer manuellement.
9)
criture
dans
les
fichiers
Batch
Echo C:\www\StartServer.exe>>C:\Autoexec.bat
La 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 donnes inscrites prcdemment dans le fichier, puis inscrit la ligne transmise. Nous allons utiliser 1 seul chevron , orient vers la droite, qui pointe vers le nom de fichier utiliser :
Echo %CPT%>>C:\MonJeu\Scores\Score.dat
Comme nous l'avons dit plus haut si le fichier n'existe pas, il sera cr et les donnes y seront inscrites sans gnrer d'interruptions ou d'erreurs sauf si le ou les rpertoires le contenant 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 de soi que la variable CPT doit-tre prcdemment dfinie, en utilisant une commande de la forme Set CPT=20000 .
dir c:\*.*>>c:\listing.txt
Le contenu du disque C:\ sera inscrit en mode "rajout" dans le fichier listing.txt
Par exemple :
Pause>Nul
Le texte normalement affich par la fonction pause ("Presser une touche pour continuer") n'est pas affich, seule la fonction demeure (l'utilisateur doit presser une touche pour que le droulement du programme continue). Note : NUL peut tre aussi utilis pour tester si un lecteur existe, avec une commande de la forme if exists g:\NUL faitquelquechose , "if" testant si un fichier virtuel pouvant reprsenter n'importe quel lment en ralit sur le disque existe.
C:\MesBatch\fichier.bat
Appel avec CALL Un batch X appelle un batch A un endroit prcis. CALL a pour rle de contrler que MS-DOS remarque bien le "point de saut" et revienne dans le batch appelant aprs avoir trait le batch appel. Le Batch A est donc utilis comme un sous-programme. Cette utilisation comporte un avantage majeur : on doit programmer une seule fois les routines batch et on peut ensuite les appeler le nombre de fois que l'on veut partir de n'importe fichier Batch. Exemple :
CALL c:\MesBatch\Routine1.bat
@echo off format a: if errorlevel 1 goto erreur goto fin :erreur echo. Echo Formatage impossible ! :fin echo on
Second exemple. Remarquez que nous contrlons toujours la valeur la plus leve :
Echo off Format a: If errorlevel 4 goto erreur4 If errorlevel 2 goto erreur2 Echo Pas d'erreur, formatage effectu Goto fin :erreur4 echo Lecteur ou parametre non valable goto fin :erreur2 echo Formatage interrompu avec CTRL+C goto fin
:fin echo on
Toutes les commandes DOS ne renvoient pas des valeurs d'erreur. Les commandes concernes n'utilisent que certaines valeurs.
Le test bloc est obtenu en pressant la touche F9 (ou avec le menu Programme>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 la seconde 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 menu Programme>Deboggage) :
Ce mode vous permet de tester chaque ligne de code. Vous pourrez voir quelle ligne dclenchera les erreurs, quelle valeur prendra les variables, etc Vous devrez presser la touche "O" ou "N" chaque ligne, la touche O dexcuter la ligne, N de la passer sans lexcuter. Pour commencer un test pas pas vous devez obligatoirement presser la touche "O" de votre clavier dans la fentre DOS qui s'affichera.
PowerBatch prsente 5 modles complets de Batch. Le plus utile est sans doute "Standard batch avec environnement tendu" car il permet de 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 pour dsactiver 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 XCOPY
La commande XCOPY est une commande DOS permettant d'effectuer des copies avec plus d'options de la commande COPY. L'assistant XCOPY a t introduit dans PowerBatch afin de vous aider faire des copies de fichiers en utilisant des paramtres et des options valides. Vous pouvez lancer cet assistant l'aide du menu "Outils".
4) La commande CHOICE
La 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 en fonction de la touche prsse, pour faire des messages du style : Pour
5) Le convertisseur HTML
Le HTML est un langage "universel" de description de document, utilis notamment sur Internet pour btir des pages Web. Ne croyez pas que le HTML est indissociable du Web, et que l'utilisateur doit tre connect sur Internet pour lire ce type de fichiers : il sera trs bien lu hors-ligne, chez une personne ne possdant mme pas Internet. L'avantage est que ce langage est lu par diffrents logiciels (navigateurs) sur la majorit des systmes d'exploitation (Windows, MacOS, Linux). Utilisez donc la conversion dans ce format si vous voulez exporter le code d'un fichier Batch sur un autre ordinateur sans altration du code; ou pour le transfrer par Internet, sur un site web, ou par e-mail. PowerBatch met galement en relief le code converti (les commandes DOS seront distingues, les commentaires mis en italique etc.). Le fichier sera cre, et une nouvelle icne apparatra lendroit dsign.Doublecliquez sur l'icne pour lancer le navigateur associ aux fichiers HTML (en gnral Microsoft Internet Explorer)
Chaque machine virtuelle peut-tre configure indpendamment des fichiers de configuration comme AUTOEXEC.BAT et CONFIG.SYS, Les noms de fichiers longs peuvent tres utiliss dans une fentre DOS. Il faut simplement se souvenir que lespace ne fonctionne plus comme sparateur entre les paramtres, mais quil faut utiliser des guillemets :
de
texte.doc
La taille des fentres DOS est modifiable car les caractres sont affichs en des polices TrueType . La taille des caractres est automatiquement adapte celle de la fentre dans le mode AUTO, Les oprations de couper/copier/coller dans des fentres DOS sont grs,et les presse-papier peut-tre utilis entre les applications DOS Windows :
Le chargement des pilotes souris devient inutile, car la souris est automatiquement gre en mode fentre ou plein cran, Vous avez plus de mmoire : presque tous les pilotes importants comme NET.EXE ou SHARE.EXE existent en version 32 Bits et peuvent utiliser toute la mmoire, y compris celle situe au del de la limite des 1 Mo. Les programmes qui refusaient de fonctionner pour cause de mmoire insuffisante ont une nouvelle chance Tous les paramtres dune fentre DOS peuvent-tre entrs dans une bote de dialogue Proprits . Lditeur PIF appartient au pass ; les donnes sont toujours stockes dans les fichiers PIF pour des raisons de compatibilit mais cela ne vous concerne pas (en fait les donnes sont enregistres dans la base des registres, et le fichier PIF se contente de pointer vers elles) La convention de noms UNC est utilise dans la fentre DOS :
DIR \\TEST\FILES\TEXTS
Permet
un accs direct une ressource partage par la cration dans le rseau dun nom similaire prcd de :
Pour diter les prfrences dexcution du programme, vous devez cliquer sur le bouton droit de la souris, choisir la commande Proprits , et choisir les options proposs dans les divers onglets de la bote de dialogue.
Touche daccs rapide : Vous pouvez affecter dans cette zone certains raccourcis clavier pour lancer directement lapplication. Excuter : Comment afficher la fentre (normale, en plein cran, etc) Fermer en quittant : Dsirez vous que la fentre DOS soit automatiquement ferme une fois lapplication termine ? Le bouton Changer dicne permet daffecter une autre icne au programme. Le bouton Paramtres avancs permet daller plus loin : Loption Empcher la dtection de Windows par des programmes MS-DOS permet de forcer le fonctionnement des applications DOS qui refusent de tourner si elles dtectent la prsence de Windows. Cette option est inactive par dfaut. Si elle est active, le programme ainsi configur ne recherche pas la prsence de Windows. Loption Suggrer le mode MS-DOS appropri signifie que Windows vrifie quil peut excuter le programme correctement. Sil sagit dun programme spcial , le mode MS-DOS est suggr et configur dans la bote de dialogue. Si vous inactivez cette option, un programme dlicat sera lanc malgr les risques de plantage.
Lallocation de la mmoire
Lallocation des divers types de mmoire est presque entirement automatique sous Windows 9x install sur un ordinateur moderne. Vos interventions se limiteront aux cas les plus complexes. Vous pouvez entrer la quantit de mmoire conventionnelle, EMS (tendue), et XMS (pagine) ncessaire au bon fonctionnement de cette application, ainsi que la mmoire conserver en mode protg.
Si vous cochez loption Protg de la mmoire conventionnelle, votre programme sera protg contre les accs sauvages de ce programme la mmoire. Ce mode de fonctionnement met en uvre des procdures de vrification actives intervalles trs rapprochs, ce qui ralentit la vitesse dexcution du programme, mais cela vous assure une meilleure stabilit du systme.
Grer la fentre
Les paramtres de cet onglet concernent laffichage, lexception des deux dernires options (grouper Performance), dont la place est sur longlet prcdent. Loption Emulation ROM rapide commande au pilote graphique la simulation des fonctions vido de la mmoire ROM, ce qui apporte un gain en performance. La deuxime option, Allocation de la mmoire dynamique permet Windows dutiliser immdiatement la mmoire libre par le passage une application tournant en mode texte, ce qui occupe moins de mmoire que les applications en mode graphique. Les autres options de cet onglet concernent laspect de la fentre : affichage en mode fentre ou plein cran, affichage de la barre doutils et utilisation des paramtres Taille, Position et Police de la fentre doivent tre utiliss chaque dmarrage de ce programme.
Longlet Divers
Le nom de cet onglet peut faire croire quil ne contient que quelques options dimportance secondaire, or cest exactement linverse. Les paramtres accessibles dans longlet Divers peuvent par exemple, sils sont maladroitement dfinis ; vous interdire de quitter une fentre DOS. Explication des options des options mises votre disposition : Autoriser lcran de veille : Lactivation de cette option inclut le programme en cours dexcution dans la fentre DOS dans la surveillance de linactivit de lutilisateur par lconomiseur dcran Windows. dition rapide : Cette option permet de slectionner des lments de la fentre DOS en vue de lutilisation du presse-papiers. Dans la configuration par dfaut, vous devez utiliser le menu. Mode exclusif : Si la souris cause des problmes, ce mode peut y remdier tout en autorisant lusage de la souris. Attention tout de mme : la souris nest plus utilisable sous Windows 95, et vous ne pourrez plus revenir linterface graphique en cliquant au-dehors de la fentre DOS. Toujours suspendre : Quand cette option est active, lexcution du programme est suspendue lorsquil nest pas utilis. Avertir si encore actif : Si cette option est active, un message apparat lorsque vous tentez de fermer un programme DOS encore actif.
Sensibilit lattente : Ce curseur affecte au programme un dlai pendant lequel le processeur attend votre reprise dactivit avant daffecter son temps de calcul une autre application. Pour augmenter les ressources du programme, dplacez le curseur en direction de Basse, pour diminuer ses ressources, rapprochez le curseur de Haute. Collage rapide : Cochez cette case pour coller les donnes du presse-papier en mode rapide. Si les donnes ne sont pas correctement colles, alors dcochez cette case. Touches de raccourci de Windows : Si certains raccourcis normalement rservs Windows sont importants dans votre application DOS, vous pouvez dsactiver la prise en charge des raccourcis Windows dcochs dans cette section.
Ensuite vous avez le choix entre : Utiliser la configuration actuelle, dfinie entre autres par AUTOEXEC.BAT et CONFIG.SYS pour le programme, Utiliser une configuration spcifique de AUTOEXEC.BAT et CONFIG.SYS pour le programme. Dans ce cas, les zones de texte CONFIG.SYS et AUTOEXEC.BAT doivent tre remplies avec le contenu des fichiers adquat comme si ils taient rellement lancs depuis votre disque. Si vous souhaitez utiliser une configuration spcifique sans entrer de lignes de code, cliquez sur le bouton Configuration . Dans la bote de dialogue, cochez les modules dont vous avez besoin et laissez Windows le soin dinscrire la ligne adquate dans le liste de configuration. Enfin, signalons galement que sil existe un fichier DOSSTART.BAT sur votre systme, celui-ci sera excut lors du lancement du mode rel. Vous pourrez donc inscrire toutes les commandes que vous dsirez utiliser dans tout appel au mode MS-DOS. Pensez toujours tester des programmes DOS rcalcitrants sous Windows en mode DOS rel. Dans la majorit des cas, vos problmes seront rsolus. Information : Les prfrences dexcution standard pour toutes les fentres DOS sont dfinies dans le fichier COMMAND.PIF. Si vous modifiez les proprits dans la fentre DOS, chaque programme DOS sera lanc sur la base des paramtres modifis.
Par la redirection des rsultats de commande dans des fichiers, puis la recherche et lextraction dinformations partir de commandes spcifiques (commande FIND par exemple) Exemple : ce fichier Batch determine si Windows est lanc, si lon est sous DOS ou si nous somme en mode DOS rel, juste aprs avoir quitt Windows : Ce listing fait appel au programme MEM (affichage de la mmoire libre/utilise sur le systme), et tente de chercher certains fichiers en mmoire significatifs de lutilisation de MS-DOS. Suivant les rsultats, il affiche un message correspondant.
@echo off cls mem /m win | find "K" if errorlevel 1 goto never mem /m vmm32 | find "K" cls if errorlevel 1 goto dosmode goto doswin :never echo La machine n'a pas encore demarre sous Windows. goto done :doswin echo Windows est actuellement lance. goto done :dosmode echo Windows a deja ete lance mais vous avez redemarre en mode MS-DOS :done
Vous pouvez faire mieux ! Le programme DEBUG, permettant entre autres dafficher ltat de la mmoire, peut tre utilis pour calculer la taille de mmoire disponible sur un disque, etc Nanmoins, ces solutions savrent peu pratiques, lourdes mettre en uvre et plutt lentes. Si vous souhaitez vous lancer dans la haute voltige de la programmation Batch, jetez un coup dil sur ces pages: http://www.ericphelps.com/batch/ http://home7.inet.tele.dk/batfiles/ http://www.fpschultze.de/batstuff.html http://www.cableyorkton.com/users/gbraun/batch/ http://www.merlyn.demon.co.uk/batfiles.htm http://www.cybertrails.com/~fys/index.htm
Pour finir
J'espre que vous avez suivi ce bref tutoriel avec plaisir, et que cette initiation la programmation en langage Batch ne vous a pas parue trop complique. Je vous conseille de trouver des d'autres didacticiels et documents prsentant des astuces 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.com
Si vous remarquez des erreurs, ou pensez que des complments sont ncessaires, merci de me contacter (rabusier@aol.com) Bonne continuation ! Rabusier