1 2 Stéphane Grare Un fichier Batch est un fichier qui regroupe une suite logiq

1 2 Stéphane Grare Un fichier Batch est un fichier qui regroupe une suite logique de commandes MS-Dos, et possédant l'extension ".bat" et est directement exécutable par le système. Les commandes sont enregistrées ligne par ligne et seront exécutées séquentiellement. 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 utilisables que dans les fichiers Batch du fait de leur inutilité dans l'environnement de commande Dos. C'est ce qui permet d'automatiser certaines tâches. 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. INTRODUCTION L'intérêt des Batchs est donc d'automatiser des tâches répétitives effectuées 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 leurs "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... n'existent pas sous DOS, ce qui implique l'usage de programmes externes (s'ils existent, selon les cas). TABLE DES MATIERES ● Création d'un fichier Batch ● Notions de bases sur les fichiers Batch ● Les commandes spécifiques ● Passage de paramètres ● Les Boucles ● Aller plus loin dans les fichiers Batch ● Exemple de fichiers Batch 3 1 – Création d'un fichier Batch : Le terme "Batch" désigne un fichier contenant une suite de commandes qui seront traitées automatiquement. Nous appelons aussi cela un "traitement par lot". Afin de créer votre premier fichier Batch, suivez cette procédure : 1) Ouvrez un éditeur de texte : Le Bloc-notes par exemple. 2) Inscrivez vos lignes de commandes. 3) Enregistrez votre fichier texte. 4) Cliquez sur le nom du fichier puis appuyez sur la touche F2. Vous serez en mode "Édition". 5) Renommez le fichier en changeant l'extension .txt en .bat. À la question : "Voulez-vous vraiment renommer le fichier", répondez par Oui. Attention de désactiver au préalable la case "Masquer les extensions de fichiers dont le type est connu" dans les options avancées de l'Explorateur Windows. Pour créer un fichier Batch, vous pouvez également utiliser directement l'interpréteur de commandes : pour cela, utilisez la commande EDIT : Appeler alors la commande EDIT pour l'éditeur de texte : 2 – Notions de base sur les fichiers Batch : Malheureusement, la majorité des sources intéressantes qui pourront vous aider à approfondir les techniques de la programmation Batch sont souvent en anglais... "Xset" est un outil indispensable pour appendre à écrire des fichiers Batch sous toutes les versions de Windows. De plus, Marc Stern propose de nombreux didacticiels à partir de son site Internet : http://xset.tripod.com/. Jerold Schulman qui m'a autorisé à citer quelques-uns de ces scripts anime un site Internet qui propose d'innombrables pages sur la programmation Batch : http://www.jsiinc.com/. C'est, par ailleurs, un des meilleurs sites traitant des systèmes NT de Windows. D'excellents scripts sont également visibles à partir de cette adresse : www.uwasa.fi/~ts/http/http2.html#batch. Timo Salmi propose une multitude de solutions permettant de résoudre les problèmes les plus courants quand on commence à se lancer dans la programmation Batch. Ritchie Lawrence met en lignes de nombreux modèles de scripts et propose quelques utilitaires fort bien faits qui vous permettront de réaliser des choses étonnantes en mode Ms-Dos ou en Invite de commandes. L'adresse de son site est la suivante : http://www.commandline.co.uk/index.html. Enfin, une source inépuisable de trouvailles est proposée à partir de ce forum recouvrant une multitude de thématiques dont Ms-Dos et l'Invite de commandes : http://www.experts-exchange.com/Operating_Systems/MSDOS. La plupart des exemples de scripts expliqués dans ce chapitre s'inspirent directement ou indirectement des techniques présentées par ces différents auteurs. Quelle différence entre l'extension .cmd .btm et .bat ? Un fichier .cmd ou .btm ne sera pas reconnu en tant que tel par Windows 9X. Nous pouvons voir cela comme une sorte de 4 garde-fou si tel fichier de commande est parfaitement incompatible avec ces versions de Windows. Par ailleurs, le processus est légèrement différent : dans le cas d'un fichier .bat ou .cmd, chaque ligne du fichier est exécutée individuellement et le fichier fermé puis ouvert à chaque lecture d'une nouvelle commande. Dans le cas d'un fichier .btm, le fichier n'est ouvert qu'une fois, puis lu en mémoire et enfin fermé. C'est donc a priori le mode le plus rapide. Surtout si ce sont des commandes internes qui sont exécutées. Se servir des parenthèses dans les fichiers de scripts : Si vous souhaitez rediriger le résultat de différentes commandes dans un même fichier texte. Par exemple : @echo off DIR /s /b *.doc >> resultat.txt DIR /b *.dot >> resultat.txt REM etc. @echo on Il est dans ce cas plus simple de saisir : @echo off ( DIR /s /b *.doc DIR /s /b *.dot ) >> resultat.txt @echo on Cela vous évitera de spécifier plusieurs fois le même fichier de sortie. Par ailleurs, c'est une manière de créer de toutes pièces un fichier texte : @echo off ( @echo Bonjour, @echo Tout le monde ! ) > test.txt Dans ce dernier cas, les commandes sont regroupées. Afficher le code de sortie : À chaque fois que vous saisissez une commande, cette dernière produit un code de sortie qui est principalement : 1 : La commande a renvoyé une erreur 0 : La commande n'a pas renvoyé d'erreur. C'est la variable %Errorlevel% qui est chargée de suivre les fluctuations de la réussite ou non des commandes exécutées. La commande "Set" teste les "Errorlevel" en partant de la plus petite valeur puis en procédant par incrémentation de 1. La commande "GOTO" démarre de la plus grande valeur puis procède par décrémentation de 1. Gérer les caractères accentués : Les différences entre la norme Ansi (Windows) et OEM (Ms-Dos) font que si vous vous servez d'un éditeur de texte comme le Bloc-Notes les caractères accentués ne s'afficheront pas correctement dans les sorties écran en mode "Console". Ainsi, la phrase "Je répète : "Vous êtes un entêté" s'affichera comme cela : Je rÚpÞte : "Vous Ûtes un entÛtÚ". Il y a différentes solutions : Vous pouvez toujours vous servir de l'éditeur de texte prévu dans toutes les versions de Windows : "Edit". ll existe de nombreux programmes vous permettant d'opérer la conversion Ansi vers OEM et vice-versa. "OEMANSI.exe" est un programme écrit en français que vous pouvez télécharger à partir de cette adresse : http://perso.wanadoo.fr/andre.araste/tele2.htm Décompressez l'archive ZIP nommée Oemansi.zip puis double-cliquez sur ce fichier exécutable : Setup.exe afin de lancer l'installation de ce logiciel. Imaginons que notre fichier à convertir s'appelle Test.bat suivez la procédure suivante : 1) Cliquez sur Démarrer/Tous les programmes/OEMANSI/OEMANSI. 2) Cliquez sur le bouton Ouvrir Fichier. 3) Dans la liste déroulante Fichiers de type :, sélectionnez Tous les fichiers (*.*) puis votre fichier Batch. 4) Cochez le bouton radio ANSI(Win) puis la flèche dirigée vers le bas. 5 Il est possible d'effectuer l'opération inverse ! 5) Cliquez sur le bouton Sauvegarde OEM puis lancer le processus de conversion. 6) Confirmez le remplacement ou non de l'ancienne version. Gérer les caractères réservés : Ces caractères ne peuvent pas être employés "tels quels" dans un script. Le signe % pour être "compris" dans un fichier de script doit être redoublé. Par ailleurs, nous avons déjà vu que pour afficher un caractère réservé il faut le faire précéder du signe ^. Dans ce cas-là, il ne sera pas assimilé à une commande, mais bien à un caractère. Afin d'afficher les signes : ! ^ & < > >> " | créez un fichier Batch contenant cette commande : @echo off ECHO ^! ^% ^^ ^& ^< ^> ^>^> ^" ^| @echo on Une manière d'afficher les caractères de redirection : @echo off <nul (SET /p z=Le^|texte^|de^|sortie) >sortie.txt @echo on Nous redirigeons le produit de la commande "SET" vers le fichier Sortie.txt, mais en désactivant toute sortie-écran. L'utilisation de la commande "SET" sera expliquée plus loin. 3 – Liste des commandes : Dans la rubrique suivante, nous détaillerons certaines commandes spécifiques. Il s’agit ici d’un aperçu rapide des commandes existantes en batch. ANSI.SYS Définit les fonctions qui modifient l'affichage, contrôlent le déplacement du curseur et réaffectent les touches. APPEND Permet aux programmes d'ouvrir les fichiers de données qui se trouvent dans les répertoires spécifies, comme s'ils figuraient dans le répertoire en cours. ARP Affiche, uploads/Industriel/ les-fichiers-batch-livre-blanc-de-stephane-grare.pdf

  • 44
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager