Tutoriel sur la programmation Batch Par Adrien REBOISSON -

Please download to get full document.

View again

of 46
483 views
PDF
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Document Description
Tutoriel sur la programmation Batch Par Adrien REBOISSON - Table des matières Introduction Qu'est ce qu'un fichier Batch Créer des fichiers batch avec PowerBatch I] Création du fichier
Document Share
Documents Related
Document Transcript
Tutoriel sur la programmation Batch Par Adrien REBOISSON - Table des matières Introduction Qu'est ce qu'un fichier Batch Créer des fichiers batch avec PowerBatch I] Création du fichier batch Hello, Word! Votre premier fichier Batch Comment fonctionne-t-il? La commande ECHO L'écho local Afficher une ligne vide Commentez votre code Les caractères accentués II] Utilisation de commandes DOS dans un fichier Batch Qu'est-ce qu'une commande DOS La variable PATH Arguments passés à une commande, à un fichier Créez vos commandes avec les Batch. III] Variables d'environnement Qu'est ce qu'une variable d'environnement Définir, modifier, supprimer, une variable d'environnement Lire les valeurs des variables d'environnement Insérer des définitions dans Autoexec.bat IV] Sauts inconditionnels Qu'est ce que les sauts inconditionnels La commande GOTO La commande LABEL V] Exécution conditionnelle A quoi servent les commandes d'exécution conditionnelles Les différentes formes de ces commandes et l'intérêt de leurs combinaisons : IF, IF NOT, IF EXIST 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 Générer des bordures en utilisant l'assistant dans PowerBatch IX] Ecriture dans des fichiers Écriture en mode ajout Écriture en mode écrasement Écriture de résultats de commande Redirection vers le périphérique 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 modèles L'assistant XCOPY La commande CHOICE Le convertisseur HTML Avertissement : Ce tutoriel n'a pas pour vocation de remplacer un livre dédié à la programmation Batch, mais surtout d'initier le programmeur débutant à cette technique. Il n'est pas exempt d'erreurs, si vous en repérez, merci de me contacter par mon La version la plus récente de ce manuel sera toujours publiée sur 1 ) Introduction Basiquement, un fichier Batch n'est rien de plus qu'un fichier texte contenant des commandes MS-DOS, et possédant 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 nécessite 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. Néanmoins, 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 répéter toujours la même série de commandes. À titre d'exemple, nous pourrions évoquer le changement de répertoire et peut-être aussi la commande FORMAT qu'on fait souvent suivre de la commande CHKDSK pour vérifier si la disquette a bien été formatée. Exemple : Imaginons un fichier batch contenant les commandes suivantes : cd \ cd games superjeu.exe Cela aurait le même effet que si vous tapiez sous DOS les commandes suivantes : C:\Chemin cd \ [Entrée] C:\ cd games [Entrée] C:\games superjeu.exe [Entrée] L'intérêt des batch est donc d'automatiser des tâches répétitives effectuées sous DOS. Les fichiers batch sont donc très faciles à créer 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 légère par rapport à d'autres programmes, ce qui facilite leur transferts sur différents disques et supports de stockage. Cependant Le langage Batch n'est pas compilé, il est interprété par COMMAND.COM ce qui rend plus lent l'exécution de programmes batch par rapport à des applications écrites directement en langage machine, Les fichiers Batch sont directement éditables, donc votre code n'est pas protégé à la copie par d'autres programmeurs, Enfin, et surtout, des opérations élémentaires telles que le traitement de chaînes de caractères, d'opérations mathématiques, etc n'existent pas sous DOS, ce qui implique l'usage de programmes externes (s'ils existent, selon les cas). 2 ) Création de fichiers Batch avec PowerBatch Il existe un logiciel nommé PowerBatch permettant de créer très facilement des fichiers Batch, en utilisation libre en plus. Nous allons apprendre à nous en servir pour créer nos fichiers Batch. 1 ) Télécharger le fichier depuis 2 ) Décompressez le fichier ZIP, lisez attentivement les fichiers Lisez moi , puis installez le logiciel (Si besoin est, vous devez à un moment redémarrer votre PC puis recommencer l'installation). 1 ) Création 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 paramètre : le texte qu'elle doit afficher à l'écran. Le paramètre est donc placé à droite de la commande, séparé par un espace. En réalité, ECHO est utilisé pour faire sortir tous types de données dans n'importe quel périphérique (et même dans un fichier). Dans notre cas nous l'utilisons pour faire sortir des données 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 littérales soient distinguées par des guillemets. NOTE IMPORTANTE : MS-DOS n'est pas sensible pour les commandes à la différence entre les majuscules et les minuscules, que vous écriviez echo ou Echo, ou bien encore ECHO ou EcHo, le résultat sera le même. PowerBatch possède une fonction bien pratique permettant de tester le fichier Batch en cours. Pressez F6, ou exécutez la commande Test global situé dans le sous-menu Tests du menu Programme . Une fenêtre DOS apparaît, avec le resultat suivant : Le DOS nous a bien affiché notre résultat, MAIS il apparaît comme si on venait d'entrer les commandes séparément sous DOS : En effet, on distingue l'invite (c:\program Files\PowerBatch ), la commande (Echo Hello, Word!), son résultat dessous, puis un second invite. Nous souhaiterions que seuls les résultats des commandes apparaissent à l'écran. Il va falloir utiliser l'écho local. L'écho local est une fonction permettant ou non de voir uniquement les résultats des commandes entrées. Ci-dessus, l'écho local est activé, puisque l'on voit l'invite DOS et les commandes comme si on les avait tapés sous DOS. Il va falloir désactiver cet écho en tapant : 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 paramètre particulier à la commande : il s'agit du paramètre off , qui désactive l'écho local. Cette commande accepte aussi le paramètre on qui permet d'activer cet écho. Vous avez donc dans le cas présent désactivé l'écho local. Testez de nouveau le fichier en écrivant donc : Echo off Echo Hello Word! Puis pressez ensuite F6 : Voilà comment le programme s'est déroulé : L'écho est sur ON : le programme affiche toutes les commandes avant de les exécuter. 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 désactivé. Le programme rencontre la commande Echo Hello, Word! . Il se contente donc d'afficher Hello, Word! à l'écran. Néanmoins, 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 désactiver immédiatement l'écho pour une ligne, il suffit juste de faire précéder la ligne de ce signe. On a donc off Echo Hello Word! Pressez F6 pour executer le fichier et batch Et là, on a enfin que ce que l'on cherche : A retenir La commande echo , pour afficher un texte, Qu'est ce que l'écho local, Le paramètre off pour désactiver l'écho local, on pour l'activer, Le caractère pour désactiver 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 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 paraît parfaitement clair. Mais le sera t-il dans un mois ou lu par une autre personne? Il est donc nécessaire d'insérer des remarques, appelées commentaires dans vos fichiers. La commande REM (REMark) est là pour vous! Il suffit simplement d'apposer votre commentaire après la commande, par exemple 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 exécutée, mais vous aidera à mieux comprendre ce que vous avez voulu faire lorsque vous n'avez pas étudié le Batch depuis longtemps. Attention aux caractères spéciaux! Les caractères spéciaux sont les accents, signes divers comme /, %, etc. N'utilisez pas d'accent, car MS-DOS va remplacer les caractères accentués par des symboles off echo J'ai été reçue à mon examen! Donne : Utilisez plutôt la fonction d'accentuation de PowerBatch (Menu Commandes , sousmenu Caractères spéciaux , articles Accent grave , Accent circonflexe , Accent aigu , etc.) A retenir La commande echo. Pour afficher une ligne vide La nécessité de commenter son code (Commande REM) Eviter d'utiliser directement des caractères spéciaux, comme des caractères accentués. Astuce PowerBatch : Utilisez l'article Standard Batch du menu Modèle pour créer un batch automatiquement off. 2 ) Utilisations de commandes standard DOS dans un fichier Batch Il est très facile d'exécuter des commandes DOS dans un fichier Batch, et c'est même fait pour ça Il vous suffit d'insérer la commande dans le batch. Par exemple, voici un fichier listant le contenu du disque C:, allant dans le dossier Jeux, puis exécutant le fichier SuperJeu.exe : @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é connaître les plus communes. Nous allons donc étudier ce qu'est une commande MS-DOS en réalité. RAPPEL : Nous sommes sous DOS, les noms de fichiers sont limités à 8 caractères (sinon, on tronque les deux derniers caractères par ~x, x représente un nombre discriminant destiné à distinguer deux éventuels noms communs) Il y a deux possibilités : Soit la commande DOS est intégrée à l'interpréteur COMMAND.COM. C'est le cas des commandes les plus communes comme DIR, CD, etc Soit la commande est en réalité un exécutable DOS, c'est-à-dire que c'est une application qui est intégrée sous la forme d'une commande standard. C'est sur ce cas que nous allons nous pencher. 1 ) Comment un exécutable peut-être considéré comme un commande? Une commande est par définition un mot que l'on peut entrer où que l'on soit (que l'on soit dans le répertoire A ou le répertoire B), et qui ne nécessite pas qu'on indique son chemin d'accès, et qui bien sûr agit physiquement ou logiciellement sur votre ordinateur directement ou à l'aide de paramètres. RAPPEL : Pour lancer un fichier.exe,.com ou.bat, il n'est pas nécessaire de préciser 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 stockés ces commandes? Ces commandes sont stockées naturellement dans C:\DOSSIER_DE_WINDOWS\COMMAND\, donc, dans la majorité des cas, dans C:\WINDOWS\COMMAND\ Si vous possédez un fichier.exe,.com ou.bat, et que vous souhaitiez l'établir en tant que commande DOS, copiez le simplement dans ce répertoire. 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 apparaît à l'écran Plus fort : tapez simplement DisBonjour = Votre texte apparaît aussi à l'écran Conclusion 1 : Pour ajouter des commandes à MS-DOS, copiez des exécutables DOS d'extension.bat,.exe, ou.com dans le répertoire COMMAND du dossier de Windows. 2 ) La variable PATH et les autres répertoires d'ajout possibles D'autres répertoires peuvent définir des chemins d'accès potentiels à des commandes. Pour voir les chemins d'accès possibles installés sur votre machine, tapez path dans une session MS-DOS. Voilà un exemple possible de résultat : On peut voir que les répertoires d'accès sont au nombre de 3, et séparés par des pointvirgules : 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 2 (et finale) : Pour ajouter des commandes à MS-DOS, copiez des exécutables DOS d'extension.bat,.exe, ou.com dans un des répertoires spécifiés par la variable Path . 3 ) Ajouter un chemin d'accès à la variable path Path est une variable d'environnement, c'est à dire, (nous le verrons plus en détails plus tard) que cette variable représente 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'accès dans cette variable. REGLE 1 : Une variable d'environnement est identifiée à la lecture lors d'une définition par 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'accès, 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é à séparer le chemin précédent du nouveau chemin. CHEMIN_A_AJOUTER représente le chemin d'accès à 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'interprêteur 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. Par conséquent, on peu simplement taper : Superjeu.exe Ou, comme une commande standard : Superjeu Cela signifie aussi que tous les autres fichiers situés dans le %path% pourront-être lancés 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 ) Paramètres envoyées à une commande ou à un programme. On appelle paramètre tous les arguments passés à un programme ou une commande. Les paramètres sont séparés par des espaces. Par exemple, dans : FORMAT a: /V[:MaDisquette] /B /C FORMAT est la commande, A: est le premier paramètre /V[:MaDisquette] est le second paramètre /B est le troisième paramètre /C est le quatrième paramètre. En fait, FORMAT est un programme (FORMAT.EXE) localisé dans C:\WINDOWS\COMMAND Ce programme reçoit donc comme argument tous les paramètres envoyés par l'intermédiaire du DOS. Votre Batch peut, on le verra plus en détail plus tard, recevoir neuf paramètres séparés par des espaces, comme un programme standard comme FORMAT.EXE peut le faire. Ce sont des variables d'environnement spéciales destinées spécifiquement au fichier Batch qui est utilisé : chaque Batch peut donc lire les arguments, si il y en a, qui lui sont envoyés lors de son lancement. À RETENIR : Dans Windows, il est impossible d'envoyer des paramètres en double cliquant sur un fichier. Pour envoyer des paramètres à 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 définir les préférences d'exécution d'une application DOS. Vous pouvez donc lire 10 variables relatifs au arguments passés à votre programme. Ces variables vont de %0 à %9. La variable %0 contient le chemin d'accès au programme, %1 le premier paramètre, %2 le second paramètre jusqu'à %9 qui contient le neuvième paramètre envoyé au batch. Exemple : créez avec PowerBatch un fichier ressemblant à celui-ci dessous, puis utilisez la fonction Test avec paramètres de PowerBatch (Menu Programme , sousmenu Tests ) pour envoyer des paramètres au fichier (ou procédez par l'intermédiaire du DOS) 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 paramètre (vous lancez simplement le fichier), vous obtenez un résultat de ce type : Comme vous le constatez, rien n'apparaît à la place des %1 %2 %3 et %4 : en effet, nous n'avons pas envoyé de paramètre à l'application, c'est donc normal. Envoyez 3 paramètres, par exemple /V pour le premier paramètre, ABC.EXE pour le second, et C:\ pour le troisième. Sous DOS, vous pouvez lancer le fichier en le faisant précéder de son adresse, puis en envoyant les paramètres, par ex : C:\Tests\Monbatch.bat /V ABC.EXE C:\ Vous pouvez procéder plus facilement avec PowerBatch : entrez simplement ces paramètres dans la boite de dialogue affichée lorsque vous cliquez sur l'article Global avec paramètres dans le sous-menu Test du menu Programme , cliquez sur OK : le fichier est exécuté avec les paramètres entrés. Ce qui donne : Ce qui est bien sûr parfaitement logique. Nous apprendrons plus tard à nous en servir dans un programme : à tester si le fichier a des paramètres, à agir en fonction, etc A retenir Même 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 répertoire est inscrit dans la variable %PATH% Un fichier peut-être lancé sans préciser son chemin d'accès si son répertoire 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 accéder via les variables spéciales %x 3 ) Variables d'environnement Une variable d'environnement, nous l'avons déjà dit plus haut, représente 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
Similar documents
View more...
Search Related
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x