Apprendre la programmation de script batch Par Juillard Jean-Baptiste Date de p

Apprendre la programmation de script batch Par Juillard Jean-Baptiste Date de publication : 13 avril 2015 Durée : 15-20 heures Ce cours a pour but de vous apprendre la programmation de script batch. Tombés en désuétude, ils reviennent forts depuis Windows Server 2012 du fait que celui-ci utilise une interface en ligne de commande aussi appelée CLI (Command Line Interface) ou CUI (Console User Interface). Commentez Apprendre la programmation de script batch par Juillard Jean-Baptiste - 2 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2015 Juillard Jean-Baptiste. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://initscreen.developpez.com/tutoriels/batch/apprendre-la-programmation-de-script-batch/ Remerciements............................................................................................................................................................ 4 I - Introduction..............................................................................................................................................................5 I-A - L'éditeur de texte........................................................................................................................................... 5 I-B - Encodage des caractères.............................................................................................................................. 6 I-C - Hello World.................................................................................................................................................... 7 I-D - Différence entre la commande « rem » et le préfixe « :: ».......................................................................... 10 I-E - Les échappements de caractères................................................................................................................10 I-F - Les bogues de la commande « rem » et du préfixe « :: »...........................................................................12 II - Les variables........................................................................................................................................................13 II-A - Les variables d'environnement................................................................................................................... 13 II-B - La commande « set »................................................................................................................................. 17 II-C - Les variables de type chaîne de caractères.............................................................................................. 19 II-D - Les variables de type nombre entier signé................................................................................................ 21 II-D-1 - Les opérations arithmétiques............................................................................................................. 23 II-D-2 - Les opérations logiques..................................................................................................................... 25 II-D-3 - Les opérateurs unaires...................................................................................................................... 27 II-E - Les nombres entiers signés en notation hexadécimale..............................................................................29 II-F - Les nombres entiers signés en notation octale.......................................................................................... 31 III - Les conditions..................................................................................................................................................... 33 III-A - If, else, else if, not et /i.............................................................................................................................. 33 III-B - La condition « exist <path> ».....................................................................................................................34 III-C - La condition « defined <variable> »...........................................................................................................35 III-D - La condition « errorlevel <opérande> ».....................................................................................................35 III-E - La condition « cmdextversion <opérande> ».............................................................................................36 III-F - La condition « <chaîne1> <comparateur> <chaîne2> »............................................................................ 37 III-G - La condition « "<chaîne1>"=="<chaîne2>" »............................................................................................. 39 III-H - Mise en application de la commande « if »...............................................................................................40 IV - Tout dépend du contexte....................................................................................................................................43 IV-A - Les labels...................................................................................................................................................43 IV-B - Les sauts................................................................................................................................................... 43 IV-C - Contexte de commande............................................................................................................................ 43 IV-C-1 - La portée des variables.................................................................................................................... 44 IV-D - Les fonctions............................................................................................................................................. 44 IV-D-1 - L'appel de fonction............................................................................................................................44 IV-D-2 - Sortie de fonction..............................................................................................................................45 IV-E - Les paramètres de commande..................................................................................................................45 IV-E-1 - Les modificateurs de paramètres de commande............................................................................. 46 IV-E-2 - La commande shift............................................................................................................................47 IV-F - Les sorties..................................................................................................................................................47 IV-G - Code de sortie...........................................................................................................................................49 IV-H - Script batch et adresse de retour............................................................................................................. 49 IV-I - La commande start..................................................................................................................................... 50 IV-J - La commande setlocal............................................................................................................................... 53 IV-K - La commande endlocal............................................................................................................................. 53 IV-L - Mise en application des contextes.............................................................................................................53 V - Les boucles..........................................................................................................................................................58 V-A - Les boucles pour chemin d'accès..............................................................................................................58 V-B - Les boucles pour compteurs...................................................................................................................... 59 V-C - Les boucles de recherche..........................................................................................................................60 V-D - Les échappements propres à la boucle for............................................................................................... 62 V-E - Mise en application des boucles................................................................................................................ 63 VI - L'expansion retardée des variables....................................................................................................................67 VI-A - Cas de la boucle for..................................................................................................................................67 VI-B - Générer dynamiquement des noms de variables..................................................................................... 68 VI-C - Parcourir une chaîne.................................................................................................................................69 VI-D - Mise en application de l'expansion retardée.............................................................................................70 VII - La gestion des flux............................................................................................................................................ 72 VII-A - Le canal standard.....................................................................................................................................72 Apprendre la programmation de script batch par Juillard Jean-Baptiste - 3 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2015 Juillard Jean-Baptiste. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://initscreen.developpez.com/tutoriels/batch/apprendre-la-programmation-de-script-batch/ VII-B - Les opérateurs de redirection...................................................................................................................72 VII-C - L'opérateur &............................................................................................................................................ 73 VII-D - La sortie standard.....................................................................................................................................74 VII-E - Les opérateurs > et >>.............................................................................................................................74 VII-F - L'erreur standard.......................................................................................................................................75 VII-G - L'entrée standard......................................................................................................................................75 VII-H - Le pseudo-périphérique NUL................................................................................................................... 77 VII-I - L'opérateur |............................................................................................................................................... 78 VII-I-1 - Les filtres........................................................................................................................................... 78 VII-I-2 - Le filtre find........................................................................................................................................79 VII-I-3 - Le filtre sort....................................................................................................................................... 80 VII-I-4 - Le filtre more..................................................................................................................................... 81 VII-I-5 - Le filtre findstr....................................................................................................................................81 VII-J - L'opérateur <............................................................................................................................................. 84 VII-K - Le point sur « set /p » et « type »............................................................................................................ 85 VII-L - Les opérateurs && et ||.............................................................................................................................85 VII-L-1 - Tester les deux états d'erreurs.........................................................................................................86 VII-M - Les opérateurs <& et >&......................................................................................................................... 87 VII-N - Les handles pour tampon utilisateur........................................................................................................87 VII-O - Les pseudo-fichiers de périphérique........................................................................................................89 VII-O-1 - Le pseudo-fichier CON....................................................................................................................89 VII-O-2 - Les pseudo-fichiers COMx.............................................................................................................. 90 VII-O-3 - Les pseudo-fichiers LTPx................................................................................................................ 91 VII-O-4 - Le pseudo-fichier PRN.................................................................................................................... 91 VII-O-5 - Le pseudo-fichier AUX.....................................................................................................................91 VIII - Les fichiers de réponse....................................................................................................................................92 VIII-A - La syntaxe des fichiers « *.ini ».............................................................................................................. 92 VIII-B - Lecture d'un fichier « *.ini ».....................................................................................................................92 IX - Sécurité et script batch.......................................................................................................................................97 IX-A - Les variables..............................................................................................................................................97 IX-B - L'injection de commandes....................................................................................................................... 100 Annexe A. Les caractères....................................................................................................................................... 103 A.1. Affichage des caractères de contrôle.........................................................................................................103 A.2. Insertion de caractères de contrôle et de signaux.....................................................................................104 Apprendre la programmation de script batch par Juillard Jean-Baptiste - 4 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2015 Juillard Jean-Baptiste. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://initscreen.developpez.com/tutoriels/batch/apprendre-la-programmation-de-script-batch/ Remerciements Je tiens à remercier gangsoleil et djibril pour leurs relectures techniques attentives ; ainsi que f-leb, FRANOUCH et milkoseck pour leurs relectures orthographiques assidues. Apprendre la programmation de script batch par Juillard Jean-Baptiste - 5 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2015 Juillard Jean-Baptiste. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://initscreen.developpez.com/tutoriels/batch/apprendre-la-programmation-de-script-batch/ I - Introduction Les fichiers batch sont des scripts de commandes qui s'exécutent dans l'interpréteur de commande Windows. Alors quelle pourrait être l'utilité d'écrire ces lignes de commande dans un script ? En fait, il y a plusieurs raisons : • éviter d'avoir à réécrire sans cesse les mêmes commandes lors de tâches répétitives ; • possibilité de créer de vrais petits « programmes » facilitant les tâches qui doivent être réalisées via l'interpréteur de commande. Nous allons étudier les méthodes permettant de concevoir ces programmes. Dans la suite de ce document, nous utiliserons la convention suivante : • les termes « interpréteur de commande » ou « interpréteur » désignent l'exécutable « cmd.exe » ; • dans les syntaxes de commande, les parties encadrées avec les caractères [ et ] sont optionnelles, les parties encadrées avec les caractères < et > sont à remplacer par différentes informations à fournir (celles-ci seront précisées avec la syntaxe) et les parties encadrées avec les caractères { et } sont des parties à choix multiple où chaque choix est séparé des autres avec le caractère |. La convention syntaxique est la même que celle pour l'aide en ligne de commande, ainsi il vous sera plus facile de la comprendre. I-A - L'éditeur de texte Un simple éditeur de texte, tel que le notepad fourni avec Windows, s'avère peu pratique pour écrire des scripts batch. Pour exploiter pleinement les capacités de ces scripts, il faut pouvoir encoder les caractères non anglophones comme les accents ou le « ç » afin de pouvoir accéder aux fichiers dont les noms comportent ce genre de caractères exotiques. La plupart des éditeurs de texte encodent les fichiers avec le jeu de caractères de la norme ANSI qui correspond à la langue d'installation du système d'exploitation alors que l'interpréteur de commande utilise une étendue de page de code (aussi appelée Code Page) comme CP-850 qui est l'encodage par défaut de l'interpréteur pour les systèmes Windows installés en français (France). Sous Windows, il y a un éditeur de texte que vous possédez peut-être déjà, c'est Notepad++ (la version 5.9.x ou supérieure est nécessaire) ; si ce n'est pas le cas, vous pouvez le télécharger ici : http://notepad-plus-plus.org/fr/ Dans ce dernier, vous pourrez sélectionner l'encodage dans le menu « Encodage > Codage de caractères », puis si vous voulez le français par exemple : sélectionnez « Langues d'Europe occidentale>OEM-850 ». Dans uploads/Industriel/ batch-scripting.pdf

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