023 Tutor i El Batch\nPar Adrien REBOISSON - rabusier@aol.com\nIntroduction Qu'est ce qu'un fichier Batch Créer des fichiers batch avec PowerBatch Notions basiques importantes I] Création du fichier batch "Hello, World !" 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 À 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…\nVI] 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 XIII] L’intégration MS-DOS sous Windows XIV] Programmation avancée.\nAvertissement : 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 e-mail\nLa version la plus récente de ce manuel sera toujours publiée sur http://www.astase.com\nBasiquement, 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.\nImaginons 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]\nL'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 transfert sur différents disques et supports de stockage.\nCependant… • 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).\n2°) Création de fichiers Batch avec PowerBatch\nIl 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 http://www.astase .com 2°) Décompressez le fichier ZIP, lisez attentivement les fichiers "Lisez – moi", puis installez le logiciel .\n3°) Notions basiques importantes\n>Système d’exploitation DOS\nLe DOS est un logiciel d’exploitation (sorte de « super programme » faisant le lien entre vous et l’ordinateur) relativement ancien, orienté ligne de commande. Cela signifie que pour communiquer avec lui il faudra connaître des mots clés ainsi qu’une syntaxe spécifique, ce qui évidemment maintenant, avec l’ère des OS graphiques (icônes, pointer-cliquer, etc…) fait de lui un système un peu obsolète. Néanmoins, fourni avec Windows, émulé ou exécuté en mode réel, il constitue un monde intéressant pour exécuter certains programmes ou exécuter des commandes automatisées avec des scripts batch.\nUn fichier est un ensemble de données variables enregistrés sur un périphérique de stockage. La taille et la nature du contenu des fichiers varient suivant le type de contenu, l’application créatrice ainsi que l’utilisation que l’on peut en faire. Un fichier peut contenir par exemple une image, un texte, un son, une animation ou bien encore les quatre en même temps. Pour des raisons techniques, le DOS « réel », c’est-à-dire celui exécuté lors du démarrage en mode MS-DOS d’une machine sous Windows ne gère que des noms de fichiers de 8 caractère. Par exemple, alors que sous Windows un nom de fichier « Lettre à Elise » serait correcte, il faudra vous contenter de « LETTRE~1 » sous DOS. L’espace est également proscrit ainsi que d’autres caractères 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 n’excède pas 8 caractères, et les deux fichiers sont distincts. Enfin, MS-DOS (comme Windows) identifie le type de fichier par une extension, c’est à dire un code à 3 caractère séparé du nom de fichier par un point. Par exemple, un fichier d’extension « txt » représente un fichier texte, un fichier d’extension « doc » un document créé avec Microsoft Word, et un fichier « bmp » une image bitmap. Ces extensions sont réservées pour un type de données définies, c’est pour cela qu’il est déconseillé de les modifier manuellement (la modification de l’extension ne changeant évidemment pas le type du contenu du fichier !) La longueur totale d’un nom de fichier sous MS-DOS est donc de 11 caractères (on pourra éventuellement parler de format 8+3). Voici quelques noms de fichiers valides : « TEXTE.TXT » (fichier TeXTe), « MSDOS.SYS » (fichier SYStème), « MSPAINT.EXE » (programme EXEcutable), etc.\n>Dossiers (ou répertoires)\nLes répertoires sont un moyen élémentaire de regrouper, de classer et de hiérarchiser tous les fichiers. Comme dans une grande armoire que serait l’ordinateur, l’utilisateur (vous) pourrait classer ses documents (fichiers) dans autant de chemises (dossiers) qu’il le souhaiterait. Ainsi, vous pourrez mettre tous les fichiers portant sur un même sujet dans un même dossier, de nom approprié. Bien sûr, le nom des dossiers et leur hiérarchie reste entièrement définissable par vous-même, et vous pouvez virtuellement « imbriquer » autant de dossiers que vous le souhaitez. Par exemple, le fichier « IMPOTS.DOC » représentant vos impôts payés en 1994 pourrait être classé dans le dossier « DOCS » lui-même contenu dans le dossier « IMPOTS », lui-même contenu dans le dossier « ARCHIVES » d’un disque de stockage.\n>Disques et lecteurs\nToutes les données sur lesquelles vous travaillez doivent êtres stockés sur un disque de stockage, c’est-à-dire un support permanent permettant l’écriture, la lecture et la sauvegarde de votre travail. MS-DOS ne représente pas les disques, mais leurs lecteurs. Ainsi, il fait correspondre des lettres aux lecteurs installés sur votre machine. Par convention, le lecteur de disquettes est appelé « a », le disque dur principal « c ». D’autres lecteurs peuvent coexister, comme un second lecteur de disquette en « b » ou un lecteur de CD-ROM en « e », etc… Avant d’accéder à vos fichiers, vous devrez donc toujours spécifier un nom de disque pour que MS-DOS puisse situer le périphérique 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 médias exploités par les lecteurs peuvent être en lecture seule ou protégés en écriture, ce qui signifie que vous ne pourrez que lire les données qu’ils contiennent, et non écrire quelque chose par-dessus. En outre, vous devez veiller dans le cas de lecteurs amovibles (a: par exemple) à ce qu’il possède un disque si vous souhaitez sauvegarder des données dans ce dernier, au risque de provoquer une erreur de périphérique.\nL’arborescence est l’ensemble de tous les répertoires d ‘un même disque. La « base » d’un disque (c’est-à-dire un niveau où nous n’appartenons à aucun répertoire) est appelé « racine » de ce disque, et symbolisée par un « \_ ». L’arborescence est donc l’ensemble des répertoires à partir de la racine d’un disque. L’arborescence est souvent représenté de manière schématique, afin de visualiser niveaux et sous-niveaux d’un disque. Ainsi, un disque d : contenant quatre répertoires : « DOS », « DOCS », « ARCHIVES », et « DIVERS », dont le dossier « DOCS » contenant lui-même un sous dossier « TEST » contenant lui-même un autre dossier « FILES » sera affiché à l’écran à l’aide de la commande DOS tree de cette manière :\nD:\_ | DOS | ARCHIVES | DIVERS | DOCS | ---TEST | |------ FILES\nPour accéder à un fichier sur un disque, il ne suffit pas de connaître juste son nom, il faut aussi, dans la plupart des cas connaître sa localisation exacte dans l’arborescence. Un fichier texte « FICHIER.TXT » sur « c : », dans le répertoire « TEST » contenu luimême dans « DEMO » aura un chemin d’accès correspondant à la concaténation des noms de dossiers et du disque, séparés par des délimiteurs « \_ » : C:\_TEST\_DEMO\_FICHIER.TXT\nPour que MS-DOS « comprenne » ce que vous voulez faire, il faudra communiquer avec lui par des mots standardisés, analysés par un programme nommé « interpréteur ». Étant des mots clés réservés, aucun fichier ou dossier ne doit se nommer par le nom d’une commande. De plus, les commandes existent souvent sous deux formes : abrégées et entières (exemple : MKDIR et MD) Une commande interne est un mot reconnu par l'interpréteur qui constitue un élément du langage MS-DOS. Une commande externe est en réalité un programme fourni avec l'interpréteur. Il est placé dans un répertoire spécifique afin que MS-DOS puisse le reconnaître comme un élément 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 répertoire d'un disque, est en fait un programme exécutable.\n>DOS réel, DOS émulé\nIl existe deux types d’exploitations de MS-DOS : • Le mode réel, c’est-à-dire où MS-DOS est le seul maître à bord sur votre système. Il s’adresse directement à votre processeur, et gère tout seul votre mémoire. Ce mode est exécuté lors d’un démarrage en mode MS-DOS, et dans ce cas, Windows se retire presque entièrement de la mémoire. Dans les nouvelles versions de Windows (Me, XP), ce mode n’existe plus. • Le mode émulé (ou mode protégé) : C’est lorsque vous voyez les fameuses « fenêtres MS-DOS » dans Windows. En fait, ce n’est pas le vrai DOS, ce n’est qu’une simulation du DOS réel, agrémenté de nouvelles fonctions (autant de machines DOS virtuelles que vous les souhaitez, par exemple). Ce mode s’avère naturellement problématique pour certains programmes DOS spéciaux, dans ce cas, il vaut mieux recourir au mode réel)\n1°) Création du fichier Batch "Hello, World"\nNous allons nous atteler à la programmation d'un fichier affichant à l'écran le traditionnel "Hello World" en langage Batch. La capture d'écran ci-dessous vous montre l'écran du logiciel lorsque vous le lancez.\nQu'est ce que vous venez d'écrire ? • Vous avez écrit la commande "Echo" permettant d'afficher du texte à l'écran.\nCette 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 ces derniers. 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 pratique permettant de tester le fichier Batch en cours. Pressez F6, ou exécutez la commande "Test du fichier courant" situé dans le sousmenu "Tests" du menu "Programme". Une fenêtre DOS apparaît, avec le résultat suivant :\nLe 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 (généralement c:\_Program Files\_PowerBatch>), la commande (Echo Hello, World !), 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 variable qui, selon qu’elle est sur « on » (activée) ou « off » (désactivée), permet ou 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.\nIl va falloir désactiver cet écho en tapant :\nQu'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 :\nEcho off Echo Hello World !\nPuis pressez ensuite F6 :\nVoilà 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 exécuté. L'écho est maintenant sur OFF, il est désactivé. Le programme rencontre la commande "Echo Hello, World !". Il se contente donc d'afficher "Hello, World !" à l'écran.\nNé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 :\n@Echo off Echo Hello World !\nPressez F6 pour exécuter le fichier et batch… Et là, on a enfin que ce que l'on cherche :\n• • • • 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.\nInformation : l’exécution de la commande « echo » sans paramètres permet d’afficher à l’écran si Echo est sur ON ou si il est sur OFF.\nLa commande "echo." permet d'afficher une ligne vide. On peut donc afficher un petit texte, par exemple :\n@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.\nCommentez 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 til 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 :\n@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\_*.*\nLa 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.\nAttention 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 :\n@echo off echo J'ai été reçue à mon examen !\nUtilisez plutôt la fonction d'accentuation de PowerBatch (Menu "Commandes", "sousmenu "Caractères spéciaux", articles "Accent grave", "Accent circonflexe", "Accent aigu", etc.)\nLa commande CLS La commande CLS (Clear the Screen) permet d’effacer les données affichées actuellement à l’écran, ce qui « nettoie » la zone de texte. Les textes précédemment à l’écran sont effacés, et les données recommencent à être affichées en haut à gauche de la fenêtre DOS. Utilisez régulièrement CLS pour plus de lisibilité dans l’exécution de vos batchs. Information : Si la commande « CLS » est la dernière de votre fichier batch, alors la fenêtre DOS sera automatiquement fermée par Windows, sans besoin d’intervention manuelle pour que le programme soit arrêté (clic sur la case de fermeture)\n• • • • La commande "echo." Pour afficher une ligne vide La nécessité de commenter son code (Commande REM) Éviter d'utiliser directement des caractères spéciaux, comme des caractères accentués. La commande CLS pour effacer l’écran\nAstuce pour PowerBatch : Utilisez l'article "Standard Batch" du menu "Modèle" pour créer un batch automatiquement avec @echo off.\n2°) Utilisations de commandes standard DOS dans un fichier Batch\nPour exécuter une commande DOS, il vous suffit d'insérer la commande dans le fichier batch. Par exemple, voici un fichier listant le contenu du disque C:, allant dans le dossier Jeux, puis exécutant le fichier SuperJeu.exe :\n@echo off echo Listage du disque C:\_ dir c: echo Va dans le dossier jeux cd jeux echo Lance SuperJeux.exe Superjeux.exe\nNotre 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.\n1°) Comment un exécutable peut-être considéré comme une 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 « logicielement » 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 :\nVous pouvez simplement entrer :\n… 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\nIl 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…\nRésultat : 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.\n2°) 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 :\nOn peut voir que les répertoires d'accès sont au nombre de 3, et séparés 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 exécutables DOS d'extension .bat, .exe, ou .com dans un des répertoires spécifiés par la variable "Path".\n3°) 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'exécution, 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'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. • •\nPar conséquent, on peu simplement taper :\nOu, comme une commande standard :\nCela 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).\n4°) 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.\nPar 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 C:\_WINDOWS\_COMMAND un programme (FORMAT.EXE) localisé dans\nCe 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.\nVous 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", sous-menu "Tests") pour envoyer des paramètres au fichier (ou procédez par l'intermédiaire du DOS) :\n@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\nDans le cas ou vous n'envoyez aucun paramètre (vous lancez simplement le fichier), vous obtenez un résultat de ce type :\nComme 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 :\nC:\_Tests\_Monbatch.bat /V ABC.EXE C:\_\nVous pouvez procéder plus facilement avec PowerBatch : entrez simplement ces paramètres dans la boite de dialogue affichée juste avant n’importe quelle test : le fichier est exécuté avec les paramètres entrés.\nCe 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…\nMê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\nInformation : La commande shift permet de décaler le contenu des variables spéciales %x. Par exemple, le contenu de la variable %9 passe dans %8, %8 dans %7, etc.\n3°) Variables d'environnement\nUne 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 par exemple :\nPrécisons que, dans le langage Batch, la seule facon de stocker des données est de les associer à des variables d'environnement. Il n'existe pas de variables "locales" que d'autres fichiers Batch ne pourraient pas connaître (sauf les variables sous la forme %x) Nous voyons donc que 8 variables d'environnement sont définies sur cet ordinateur : TMP, TEMP, PROMPT, WINBOOTDIR, COMSPEC, PATH, WINDIR; et BLASTER. Sur ces 8 variables, 7 sont définis par WINDOWS : TMP (Répertoire temporaire), TEMP (Répertoire Temporaire), PROMPT (Invite du DOS), WINBOOTDIR (Dossier de démarrage de Windows), COMSPEC (Adresse de l'interpréteur de commandes), PATH et WINDIR (Dossier de Windows). Il est important de savoir que le contenu de ces variables est détruit une fois l'ordinateur éteint ou la session DOS terminée. Il faut donc, si ces variables doivent être présentes à chaque session et si elles ne sont pas automatiquement déclarées par Windows, les définir dans Autoexec.bat (qui est lui lancé à chaque démarrage). Par exemple, la variable "BLASTER" est définie dans Autoexec.bat Définir une variable d'environnement Pour définir une variable d'environnement, faites : Set NomVariable = Valeur de la variable Nous souhaitons définir 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 :\nSet VersionWindows = 98 SE\nValidez la commande puis exécutez le Batch. Il semble que rien ne se passe : normal, cette commande ne produit pas de résultat 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é ajoutée à la liste de celles déjà définies sur notre ordinateur.\nDans notre cas, il apparaît :\nNotre variable a bien été ajoutée. Notons que : • • Cette variable ne sera détruite qu'à l'extinction de l'ordinateur ou à la fin de la session DOS N'importe quel autre programme peut lire, modifier ou réécrire sur cette variable.\nRedéfinir une variable d'environnement Il suffit de réécrire la commande avec une nouvelle valeur, qui viendra écraser l'ancienne, par exemple :\nSet VersionWindows = Windows Millenium\nDans ce cas, l'ancienne valeur écrasera la nouvelle.\nSupprimer une variable d'environnement Il faut simplement assigner une valeur nulle à la variable, par exemple :\nSet VersionWindows =\nLa variable est maintenant supprimée. 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 représentant le nom de la variable à définir : en effet, on ne lit pas la valeur de la variable, mais on la définit.\nLors de l'exécution du Batch, lorsque l'interpréteur rencontre un nom encadré de deux "%", il substitue ce nom par la valeur de la variable qu'il représente, si elle existe. Exemple :\nEcho %VersionWindows% Echo La version de Windows est %VersionWindows% Set VersionWindows = %VersionWindows% - 32 Bits\nLa première 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 dernière ligne va redéfinir la variable "VersionWindows" par sa valeur, à laquelle on ajoute " – 32 Bits "(Dans notre cas la version devient "98 SE – 32 Bits".\n• • • • Qu'est-ce qu'une variable d'environnement Comment définir, 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 définies à chaque démarrage devront donc être définies dans Autoexec.bat\nDans PowerBatch, vous pouvez facilement agir sur les variables en utilisant le sous – menu "Variables" du menu "Commandes"\n4°) Saut inconditionnel\nLe langage Batch vous permet d'utiliser des commandes de boucle, c'est a dire de répeter un bloc de commandes indéfiniment. Nous allons étudier dans ce chapitre la commande "Goto". C'est une commande de saut inconditionnelle, qui ne peut être arrêtée (ou à l'aide de commandes que vous ne connaissez pas encore), par conséquent vous allez être amené à fermer de façon "brutale" des programmes DOS, et vous rencontrerez sans doute ce message :\nCela signifie que vous tentez d'arrêter un programme DOS qui est toujours actif. Cliquez sur "Oui" pour quitter le programme. En principe, les lignes de commande sont traitées les unes après 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 répété indéfiniment. C'est sur ce cas que nous allons nous pencher pour l'instant. Notre première boucle Pour faire une boucle, il nous faut deux commandes : La première est un "Label", c'est-à-dire une étiquette posée 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, accompagnée du nom du Label, indique à l'ordinateur, quand il doit se rendre à l'étiquette du même nom.\nPar exemple : Commande 1 Commande 2 Label BONJOUR Commande 3 Commande 4 Commande 5 Goto BONJOUR Les commandes 1, et 2, sont exécutées une fois, alors que les autres commandes sont exécutées en boucle, puisque le programme rencontre "GOTO", va au label du même nom, continue, rencontre à nouveau "Goto", reva au label , etc…\n• Un label se présente sous la forme : :NomDuLabel Le nom ne doit pas dépasser 8 lettres (si le nom du label dépasse 8 lettres, seules les 8 premières lettres seront prises en compte), et ne pas être composé d'espaces.\n:Debut …est un bon nom pour un label • Un "Goto" se présente sous la forme de cette commande suivie du nom du label, par exemple : Goto Debut … pour aller au label "Début".\nAllons – y pour une boucle infinie ! Nous voulons afficher "Hello, World !" en boucle. Nous écrirons donc :\n@echo off :Start echo Hello, World ! Goto Start\nLe nom du label est librement configurable, vous pouvez prendre un tout autre nom que "Start", l'essentiel étant que le nom du label et le nom qui suit le "Goto" soient identiques. Vous obtiendrez un résultat de ce type :\n… Signe que notre programme a bien bouclé\n• • • • • La commande "Goto" permet d'aller au label du même nom La marque ":Label" est un "mot" précédé de deux points (":"), correspondant à un repère 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 exécuter ou ne pas exécuter du code en fonction d'une condition.\n5°) Exécution conditionnelle – la commande "IF"\nVoici une commande qui permet d'introduire des conditions dans les fichiers batch. Si la condition formulée est remplie, le reste de la ligne de commande est exécutée, et le programme continue normalement, sinon le reste de la ligne n'est pas exécuté, et le programme continue également. Attention : seul la fin de la ligne est exécutée, par conséquent seule 1 seule commande peut-être conditionnelle, ce qui peut parfois poser des problèmes. Dans ce cas, utilisez la commande GOTO pour aller à un endroit particulier si la condition est remplie.\nSyntaxe d'utilisation :\nIf "<condition>"=="<valeur>" <action>\nAttention 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>" représente une seule commande à exécuter.\nVous pouvez bien sur comparer des variables avec des valeurs ou comparer des variables ensembles, mais n'oubliez pas de les encadrer par des guillemets.\nPourquoi ? Parce qu'à l'exécution, la valeur des variables vient remplacer leur écriture, et si une variable est nulle, MS-DOS génère 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 :\nIf "%1"=="/AIDE" ECHO Ce texte sera affiche\nIci, on va être conduit à comparer le contenu de la variable d'environnement paramètre n°1 avec le texte "/AIDE". Si ceux ci sont identiques, un texte sera affiché à l'écran. Attention à la différence majuscules/minuscule. Même si nous avons dit plus haut que MS-DOS ne faisait pas la différence entre les commandes écrites en majuscules et celles écrites en minuscules, il différencie tout de même les contenus des variables à comparer. Par exemple, si l'utilisateur à entré "/Aide" ou "/aide" au lieu de "/AIDE", la condition ne sera pas validée. Vous pouvez associer d'autres conditions à la commande IF. Voici les possibilités dont vous disposez :\nVérifie si la condition est remplie. Si oui, la ligne suivante est traitée, sinon, le reste de la commande est exécutée. C'est en fait "l'inverse" de la commande IF. Exemple :\nIf not "%ScoreJoueur"=="%ScoreNormal" echo Vous etes un nul\nIF EXIST Fichier\nVérifie l'existence du fichier désigné. 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 paramètre représentant le fichier ne peut-être nul.\nIf exist c:\_Autoexec.bat autoexec.old\nVérifie le numéro de message d'erreur. Des commandes MS-DOS renvoient un numéro spécial au fichier batch en cas de problème ou d'erreur, désigné par ERRORLEVEL. ERRORLEVEL vaut toujours 0 si aucune erreur ne s'est produite. MS-DOS exécute le reste de la ligne si ERRORLEVEL est égal ou supérieur à la valeur spécifiée. 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 exécute le reste de la ligne si ERRORLEVEL est égal ou supérieur à la valeur spécifiée. Il n'y a pas besoin de signe "=" entre errorlevel et le nombre représentant sa valeur. Exemple :\nFormat a: If errorlevel 3 echo Vous avez annule FORMAT par Ctrl+C !\nUtilisation avec la commande GOTO :\nNous avons utilisé la commande IF pour introduire des questions dans les fichiers Batch. Il serait souhaitable maintenant d'utiliser plusieurs commandes en fonction du résultat de la question.\nIf "<1>" Commande Commande :Suite Commande\n== "<2>" Goto Suite 1 2 3\nAinsi, si A=2, les commandes 1, 2 et 3 seront exécutées , sinon, la commande 3 sera exécutée et les commandes 1 et 2 évitées.\nIf not "%1"=="/?" Goto Suite Echo Voici l'aide de ce programme Echo Bla bla bla bla\n:Suite Echo Pour commencer, pressez une touche Pause\nDans le cas si dessus, si le paramètre envoyé au batch n'est pas "/?"; les commandes après "Suite" sont exécutées. Sinon, le texte d'aide est affiché.\n• • • IF permet d'agir différemment 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 régulièrement utilisée, pour exécuter ou non certaines parties du Batch. Il y a différentes formes du IF : IF, IF EXIST, IF errorlevel et IF NOT qui peuvent être combinées.\nAprès avoir fait connaissance avec une technique de la programmation des sauts inconditionnels (Goto), en voici une autre. Nous allons créer un petit batch qui va afficher successivement les chiffres 1 à 4. Ecrivez le fichier batch suivant :\n@echo off for %%A in (1 2 3 4) Do Echo C'est le nombre %%A\nCe fichier Batch contient une boucle FOR…DO. A quoi sert-elle ? Tout d'abord, %%A est utilisé seulement en tant que nom de variable. Cette variable prend alors toutes les valeurs de la liste spécifiée entre les parenthèses : dans notre cas, %%A prend donc successivement les valeurs 1, 2, 3, et 4. Les valeurs constituant la liste doivent être séparées entre elles par des espaces, des virgules, ou des pointsvirgules. Ensuite, la commande qui suit immédiatement est exécutée avec la valeur prise par la variable %%A. Dans notre cas, on verra à l'écran le message "C'est le nombre" suivi de la valeur de la variable à chaque exécution de ECHO. Un autre intérêt de cette commande est que les éléments de la liste peuvent-être des noms de fichiers. Ainsi il est possible d'exécuter une seule commande pour plusieurs fichiers. Vous pouvez donc afficher à l'écran plusieurs fichiers à la fois avec un seule commande qui est TYPE :\nFOR %%A IN (AUTOEXEC.BAT CONFIG.SYS) DO TYPE %%A\nVous pouvez aussi utiliser les caractères génériques, par exemple :\nFOR %%A IN (*.TXT *.BAT ) DO TYPE %%A\nTous les fichiers texte et Batch s'afficheront à l'écran.\n• Une boucle FOR… DO…permet d'utiliser une variable prenant successivement toutes les valeurs d'une liste prédéfinie, et l'utilisation de cette variable dans des commandes DOS ou Batch standard.\n7°) La compilation\nPowerBatch vous permet de compiler un fichier Batch, c’est-à-dire de le transformer en un exécutable binaire Windows (.exe ou .com). Un exécutable présente en effet plus d'avantages qu'un fichier Batch : vitesse d'exécution plus élevée,code source "protégé", format binaire inaltérable, etc… La compilation n'est pas assurée par PowerBatch, elle est effectuée par un logiciel indépendant appelé "Bat2exec". Ce dernier n'est pas compatible avec toutes les commandes DOS et Batch, par conséquent, testez bien le fichier compilé avant de le distribuer pour éviter toute mauvaise surprise. Par exemple, la commande "CHOICE", n'est pas supportée par le compilateur. Compiler un fichier 1°) Créez ou ouvrez un fichier Batch. Dans notre exemple, il contient simplement :\n@echo off echo Bonjour, pressez une touche… pause\n2°) Choisissez la commande "Compiler" dans le menu "Fichier", puis nommez le fichier qui va être crée.\nCliquez sur "Compiler" pour compiler le fichier Batch. Un fichier ".com" sera créé, résultat du code compilé par Bat2exec.\nCompilation sans erreur Si toutes les commandes ont été supportées, et que Bat2Exec n'a rencontré aucune erreur, PowerBatch affiche la boite de dialogue :\nCompilation avec erreur Si Bat2exec rencontre des erreurs lors de la compilation, il lui sera impossible de créer le fichier ".com". Si par exemple, nous introduisons une erreur dans notre code…\n@echo off echo Bonjour, pressez une touche… Goto Bonjour\n… (en effet, il y a un "Goto" qui pointe vers un label inexistant) et que nous essayons de compiler le code, nous obtenons ce message d'erreur :\nBat2exec va vous montrer l'erreur qu'il a rencontrée, dans notre cas, on a :\nIl 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 détecter d'ou vient l'erreur d'après le n° de ligne transmis par Bat2exec.\n• • • Compiler un fichier Batch, c'est transformer des commandes Batch en du code machine directement exécutable par l'ordinateur : c'est donc transformer un fichier texte en un programme binaire d'extension ".com". La compilation est assurée par un programme autonome nommé "Bat2exec". Si des erreurs de compilation surviennent, la création du programme est interrompue et ne peut – être recommencée que si cette erreur est corrigée.\n8°) Les bordures\nL'art de "faire" les bordures dans un fichier Batch est très apprécié des connaisseurs et des novices : quoi de plus esthétique d'encadrer un texte de cette facon :\nPour cela, MS-DOS utilise tous les caractères "spéciaux", c'est pour cela que dans le chapitre 1 nous vous avons conseillé d'éviter d'utiliser les caractères accentués tels que "é,ç,à" etc… En réalité, voilà ce qu'il faut entrer dans un Batch pour faire cette bordure :\nAu lieu d'entrer ces caractères à la main, utilisez l'assistant créateur de bordures de PowerBatch (Dans le menu "Outil").\nVoici comment se présente l'assistant à son lancement : Comme vous le voyez, cet assistant comporte une sorte d'"encadrement" constitué de plusieurs images représentant un cadre fictif. Il vous faudra en fait cliquer sur la case représentant la bordure voulue pour qu'elle apparaisse dans la zone de texte de la fenêtre. Pour créer la bordure haute (1 coin haut/gauche, 8 traits horizontaux, et 1 coin haut/doit), correspondant à la ligne :\n… vous cliquerez 1 fois sur la case :\n…8 fois sur la case :\net 1 fois sur la case :\nEnsuite, il vous faut aller à la ligne. Cliquez sur "Retour chariot" pour créer une nouvelle ligne. Nous devons donc entrer la seconde ligne pour créer une bordure ressemblant à :\nCette bordure est constituée de : 1 ligne verticale, vous cliquerez donc 1 fois sur la case représentant 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 représentant un trait vertical. Ensuite, allez à la ligne pour créer la dernière ligne de la bordure :\nCette bordure est constituée de : 1 coin bas/gauche, 8 traits horizontaux, un coin bas/droit : vous utiliserez donc les cases de l'assistant appropriées. La zone de texte de l'assistant contient maintenant :\nNe nous préoccupons pas pour l'instant du texte "Bonjour" à intercaler dans la bordure. Notre bordure à proprement parler est maintenant créée. Pour l'insérer dans le fichier Batch, cliquez sur :\nLa fenêtre 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 :\nPour afficher le fameux "Bonjour", il ne vous reste plus qu'à l'intercaler dans la seconde ligne, en veillant à ce que les bordures verticales (représentées ici par des "°") restent alignées avec les coins (ici É, >>, È,et 1/4 ) On a donc maintenant notre bordure :\nTestez le fichier… Et le résultat est bien celui attendu ! Par conséquent, utilisez l'assistant créateur de bordures pour encadrer des textes automatiquement, si vous ne souhaitez pas entrer manuellement les caractères spéciaux affichant les bordures. Note : Il existe d'autres styles de bordures non supportées par l'assistant de PowerBatch. Dans ce cas vous devrez les rentrer manuellement.\nLe caractère de redirection ">"\nÉcrire dans des fichiers\nVous pouvez écrire dans des fichiers, à l'aide de commande Batch. Nous avons dit dans le chapitre 1 que la commande ECHO servait en fait à "écrire" quelque chose quelque part. Pour l'instant, nous nous sommes contenté d'"écrire" sur l'écran, mais rien ne nous empêche de le faire sur le disque. Nous allons aussi utiliser les chevrons (">" ou "<") comme caractères de redirection. Vous devez veiller au nombre de chevrons, et à leur sens, en effet, la sortie sur le fichier en dépendra. Écriture en mode "ajout" (Append) Ce mode permet d'ajouter des données sans écraser celles qui étaient inscrites précédemment dans le fichier. Nous allons utiliser 2 chevrons, orientés vers la droite, qui pointent vers le nom de fichier à utiliser :\nEcho Texte à écrire>>c:\_texte.txt\nAinsi, tout le texte compris entre "Echo" et les ">>" sera écrit dans "c:\_texte.txt". • Si le fichier n'existe pas, il sera créé et les données y seront inscrites sans générer d'interruptions ou d'erreurs, sauf si le ou les répertoires le contenant n'existent euxmême pas. • Le texte à inscrire sera ajouté à la fin du fichier • Une nouvelle ligne sera créée dans le fichier à chaque fois que vous appellerez la commande Exemple pratique : vous souhaitez exécuter le programme StartServer.exe situé dans C:\_www, au démarrage de votre ordinateur. Il vous suffira d'écrire :\nLa commande DOS c:\_www\_StartServer.exe sera inscrite dans Autoexec.bat et lancée à chaque démarrage. Écriture en mode "Ecrasement" (Output) Contrairement au mode d'ajout, le mode d'écrasement efface toutes les données inscrites précédemment 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 :\nEcho Texte à écrire>c:\_texte.txt\nComme précédemment, tout le texte compris entre "Echo" et les ">>" sera écrit dans "c:\_texte.txt". • Si le fichier n'existe pas, il sera créé et les données y seront inscrites sans générer d'interruptions ou d'erreurs sauf si le ou les répertoires le contenant n'existent euxmême pas • Le contenu du fichier sera automatiquement effacé. Toutes les données seront perdues et remplacées par le texte entre "echo" et ">" Par exemple, vous souhaitez sauvegarder le contenu d'une variable (Ici %CPT%) dans le fichier "score.dat" situé dans C:\_MonJeu\_Scores\_ :\nComme nous l'avons dit plus haut si le fichier n'existe pas, il sera créé et les données y seront inscrites sans générer d'interruptions ou d'erreurs sauf si le ou les répertoires le contenant n'existent eux-même pas. Par conséquent, si les dossiers "MonJeu" et "Scores" ne sont pas présent sur le disque au moment de l'exécution de la commande, MS-DOS affichera un message d'erreur et le fichier ne sera pas crée. Il va également de soi que la variable CPT doit-être précédemment définie, en utilisant une commande de la forme Set CPT=20000 .\nEcrire le résultat d'une commande dans des fichiers\nVous pouvez inscrire le résultat d'une commande DOS dans un fichier, avec les deux modes décrits plus haut ("Écrasement" et "Ajout"). Pour cela, vous n'avez qu'à supprimer "Echo", et remplacer le texte à écrire dans le fichier par une commande MS-DOS. Par exemple :\nLe contenu du disque C:\_ sera inscrit en mode "rajout" dans le fichier listing.txt\nLa redirection vers "nul"\n"Nul" représente un périphérique virtuel inexistant. Utilisé avec ">" et ">>", il permet d'"écrire" le résultat de commande vers rien du tout, c’est-à-dire, en clair, de les masquer.\nLe 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 déroulement 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 représenter n'importe quel élément en réalité sur le disque existe.\n10°) Appel d'autres fichiers Batch\nLa commande CALL permet d'appeler un fichier Batch à partir d'un autre fichier batch. Après avoir traité le fichier batch appelé, le programme revient au premier fichier batch et à l'endroit précis où le fichier batch a été appelé. Vous pouvez également appeler un fichier batch à partir d'un autre sans pour autant revenir au fichier batch de départ. Il suffit tout simplement d'appeler le fichier batch par son nom (ou son adresse) c'est à dire sans CALL. Appel sans CALL Vous pouvez appeler un fichier batch à partir d'un autre en utilisant son nom. Le résultat est que le batch appelé est traité, mais il est impossible de revenir au batch de sortie précédemment traité. On peut en quelque sorte parler de "liaison unilatérale". Exemple :\nAppel avec CALL Un batch X appelle un batch A à un endroit précis. CALL a pour rôle de contrôler que MS-DOS remarque bien le "point de saut" et revienne dans le batch appelant après 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 :\n11°) Travail avec ERRORLEVEL\nDe nombreuses commandes MS-DOS revoient une valeur de retour différente de 0 quand une erreur se produit. Dans le fichier Batch, elle peut-être consultée à l'aide de la variable ERRORLEVEL. ERRORLEVEL 0 signifie qu'aucune erreur ne s'est produite. Si vous programmez en C des extensions pour MS-DOS, vous pouvez renvoyer des valeurs à l'aide de l'instruction return. Cette valeur peut-être testée avec IF, mais attention, il y a un léger point à surveiller : si la valeur de retour est SUPERIEURE OU EGALE au numéro indiqué la commande est exécutée. Par conséquent, si vous avez plusieurs ERRORLEVEL à tester, commencez toujours par la plus grande, puis procédez par ordre décroissant. Exemple : le fichier Batch suivant formate une disquette dans le lecteur A. Si une erreur se produit ou si le processus est interrompu avec CTRL+C, le fichier Batch renvoie un message d'erreur.\n@echo off format a: if errorlevel 1 goto erreur goto fin :erreur echo. Echo Formatage impossible ! :fin echo on\nSecond exemple. Remarquez que nous contrôlons toujours la valeur la plus élevée :\nEcho 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\n:fin echo on\nToutes les commandes DOS ne renvoient pas des valeurs d'erreur. Les commandes concernées n'utilisent que certaines valeurs.\n12°) 5 autres fonctions de PowerBatch\n1°) Le test ligne, le test de bloc, le test pas à pas,\nPowerBatch présente diverses possibilitées de test de vos fichiers batch : • Le test ligne est obtenu en pressant la touche F8 (ou avec le menu Programme>Deboggage) : Cette fonction vous permet de tester une seule ligne de votre fichier. Pour tester une ligne, vous devez entrer le numéro de la ligne dans la zone de texte de la fenêtre. Vous pouvez automatiquement : - Afficher un echo de test, rappelant quelle ligne va être exécutée - Désactiver l'écho local - Effacer l'écran avant de commencer (commande CLS)\n• Le test bloc est obtenu en pressant la touche F9 (ou avec le menu Programme>Deboggage) :\nCette fonction vous permet de tester un bloc de commandes, de la ligne X à la ligne Y. Entrez la ligne de départ dans la première zone de texte, puis la ligne d'arret dans la seconde zone. Vous pouvez automatiquement : - Désactiver l'écho local - Effacer l'écran avant de commencer (commande CLS)\nLe test pas à pas est obtenu en pressant la touche F7 (ou avec le menu Programme>Deboggage) :\nCe mode vous permet de tester chaque ligne de code. Vous pourrez voir quelle ligne déclenchera les erreurs, quelle valeur prendra les variables, etc… Vous devrez presser la touche "O" ou "N" à chaque ligne, la touche « O » d’exécuter la ligne, « N » de la passer sans l’exécuter. Pour commencer un test pas à pas vous devez obligatoirement presser la touche "O" de votre clavier dans la fenêtre DOS qui s'affichera.\n2°) Les modèles Batch\nPowerBatch présente 5 modèles 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.\nDe plus, y sont ajoutés deux "macros", ensemble de commandes régulièrement tapées, soit en début de batch, soit en fin de batch : le début de script insère @echo off pour désactiver l'écho local, puis cls pour effacer l'écran, et le fin de script rétabli l'écho à l'aide de la commande echo on.\n3°) L'assistant XCOPY\nLa 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 paramètres et des options valides. Vous pouvez lancer cet assistant à l'aide du menu "Outils".\n4°) La commande CHOICE\nLa commande CHOICE permet d'introduire des entrées 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 préssée, pour faire des messages du style : Pour\ncontinuer, pressez C, pour quitter, pressez Q\nCet assistant vous permet d'utiliser cette commande de façon optimale, et configure rapidement des messages avec entrée clavier. Vous pouvez lancer cet assistant à l'aide du menu "Outils".\n5°) Le convertisseur HTML\nLe HTML est un langage "universel" de description de document, utilisé notamment sur Internet pour bâtir 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 très bien lu hors-ligne, chez une personne ne possèdant même pas Internet. L'avantage est que ce langage est lu par différents logiciels (navigateurs) sur la majorité des systèmes 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 altération du code; ou pour le transférer par Internet, sur un site web, ou par e-mail. PowerBatch met également en relief le code converti (les commandes DOS seront distinguées, les commentaires mis en italique etc.). Le fichier sera crée, et une nouvelle icône apparaîtra à l’endroit désigné.Doublecliquez sur l'icône pour lancer le navigateur associé aux fichiers HTML (en général Microsoft Internet Explorer)\n13°) Intégration MS-DOS dans Windows\n1°) Caractéristiques techniques pour Windows 9x\nSi vous ouvrez une fenêtre DOS sous Windows, MS-DOS 7.0 est lancé, les fichiers CONFIG.SYS et AUTOEXEC.BAT sont utilisés pour installer un environnement de travail pour tous les programmes, Si un programme refuse de fonctionner dans la fenêtre DOS ou en plein écran, vous devrez le lancer en mode MS-DOS, un pur mode réel du DOS suffisamment identique à l’ancien MS-DOS pour que tous les programmes DOS puissent fonctionner dans ce mode. MS-DOS fonctionne maintenant en « Machine virtuelle », presque exclusivement dans le mode protégé du processeur. Un petit nombre de pilotes en mode réel, une espèce en voie de disparition, sont exploités dans le mode 8086 virtuel. Le nouveau DOS est plus rapide et plus stable, Ces machines virtuelles peuvent être ouvertes en nombre pratiquement illimité, l’utilisation simultané de plusieurs programmes DOS est donc possible sans causer de problèmes,\nChaque machine virtuelle peut-être configurée indépendamment des fichiers de configuration comme AUTOEXEC.BAT et CONFIG.SYS, Les noms de fichiers longs peuvent êtres utilisés dans une fenêtre DOS. Il faut simplement se souvenir que l’espace ne fonctionne plus comme séparateur entre les paramètres, mais qu’il faut utiliser des guillemets :\nCOPY «Exemple C:\_TEXTES\_CHP1\nLa taille des fenêtres DOS est modifiable car les caractères sont affichés en des polices « TrueType ». La taille des caractères est automatiquement adaptée à celle de la fenêtre dans le mode AUTO, Les opérations de couper/copier/coller dans des fenêtres DOS sont gérés,et les presse-papier peut-être utilisé entre les applications DOS Windows :\nLe chargement des pilotes souris devient inutile, car la souris est automatiquement gérée en mode fenêtre ou plein écran, Vous avez plus de mémoire : presque tous les pilotes importants comme NET.EXE ou SHARE.EXE existent en version 32 Bits et peuvent utiliser toute la mémoire, y compris celle située au delà de la limite des 1 Mo. Les programmes qui refusaient de fonctionner pour cause de mémoire insuffisante ont une nouvelle chance… Tous les paramètres d’une fenêtre DOS peuvent-être entrés dans une boîte de dialogue « Propriétés ». L’éditeur PIF appartient au passé ; les données sont toujours stockées dans les fichiers PIF pour des raisons de compatibilité mais cela ne vous concerne pas (en fait les données sont enregistrées dans la base des registres, et le fichier PIF se contente de pointer vers elles) La convention de noms UNC est utilisée dans la fenêtre DOS :\nun accès direct à une ressource partagée par la création dans le réseau d’un nom similaire précédé de :\n\_\_NOMSERVEUR\_NOMPARTAGE 2°) Préférences d’Exécution et fichiers PIF\nLes fichiers PIF, contenant les paramètres d’exécution pour les programmes DOS lancés sous Windows, existent encore sous Windows 95, mais l’éditeur si chétif a été remplacé par une boîte de dialogue de configuration bardée d’onglets. L’utilisateur n’a pus besoin d’enregistrer les données explicitement comme fichier PIF. Quand il a terminé sa saisie, le fichier PIF est automatiquement enregistré, sous même nom que le programme et dans le même répertoire que celui-ci. L’utilisateur n’a plus qu’à cliquer sur le fichier PIF plutôt que de lancer directement le programme pour que celui-ci soit démarré avec les préférences d’exécution choisies.\nCi-dessus : L’exécutable PB.EXE et son fichier PIF associé PB.PIF\nPour éditer les préférences d’exécution du programme, vous devez cliquer sur le bouton droit de la souris, choisir la commande « Propriétés », et choisir les options proposés dans les divers onglets de la boîte de dialogue.\nLes préférences du programme\nL’onglet Programme est réservé à la modification des paramètres de base, comme le nom du programme ou le répertoire utilisé. Nom : Le nom à afficher dans la barre de titre du programme. Ligne de commande : Entrez ici le chemin d’accès ainsi que les paramètres éventuellement nécessaires à l’appel du programme. Répertoire de travail : C’est le répertoire utilisé par le programme pour lire et écrire ses données (textes dans le cas d’un traitement de texte) Fichier de commandes : Entrez ici le nom du fichier batch que vous désirez exécuter avant le lancement du programme. Ce fichier peut par exemple déclarer et initialiser des variables d’environnement ou effectuer des copies de secours de certains fichiers. Vous pouvez également entrer l’adresse d’un autre programme EXE ou COM ou une commande dos à exécuter.\nTouche d’accès rapide : Vous pouvez affecter dans cette zone certains raccourcis clavier pour lancer directement l’application. Exécuter : Comment afficher la fenêtre (normale, en plein écran, etc…) Fermer en quittant : Désirez vous que la fenêtre DOS soit automatiquement fermée une fois l’application terminée ? Le bouton Changer d’icône permet d’affecter une autre icône au programme. Le bouton Paramètres avancés permet d’aller plus loin : • L’option Empêcher la détection de Windows par des programmes MS-DOS permet de forcer le fonctionnement des applications DOS qui refusent de tourner si elles détectent la présence de Windows. Cette option est inactivée par défaut. Si elle est active, le programme ainsi configuré ne recherche pas la présence de Windows. • L’option Suggérer le mode MS-DOS approprié signifie que Windows vérifie qu’il peut exécuter le programme correctement. S’il s’agit d’un programme « spécial », le mode MS-DOS est suggéré et configuré dans la boîte de dialogue. Si vous inactivez cette option, un programme « délicat » sera lancé malgré les risques de plantage.\nL’onglet Police permet d’affecter une police de caractère au programme. Ce paramètre n’est utile qu’avec les programmes fonctionnant en mode texte en non en mode graphique. La partie gauche indique si la police existe en BitMap, en TrueType ou dans les deux formes. Vous pouvez également définir la taille des caractères. Les deux zones du bas reproduisent l’effet du paramètre sélectionné sur la taille de la fenêtre (à gauche) et sur celle des caractères (à droite). Avec la taille AUTO, la taille des caractères sera automatiquement adaptée à celle de la fenêtre.\nL’allocation de la mémoire\nL’allocation des divers types de mémoire est presque entièrement automatique sous Windows 9x installé sur un ordinateur moderne. Vos interventions se limiteront aux cas les plus complexes. Vous pouvez entrer la quantité de mémoire conventionnelle, EMS (étendue), et XMS (paginée) nécessaire au bon fonctionnement de cette application, ainsi que la mémoire à conserver en mode protégé.\nSi vous cochez l’option Protégé de la mémoire conventionnelle, votre programme sera protégé contre les accès « sauvages » de ce programme à la mémoire. Ce mode de fonctionnement met en œuvre des procédures de vérification activées à intervalles très rapprochés, ce qui ralentit la vitesse d’exécution du programme, mais cela vous assure une meilleure stabilité du système.\nLes paramètres de cet onglet concernent l’affichage, à l’exception des deux dernières options (grouper Performance), dont la place est sur l’onglet précédent. L’option Emulation ROM rapide commande au pilote graphique la simulation des fonctions vidéo de la mémoire ROM, ce qui apporte un gain en performance. La deuxième option, Allocation de la mémoire dynamique permet à Windows d’utiliser immédiatement la mémoire libérée par le passage à une application tournant en mode texte, ce qui occupe moins de mémoire que les applications en mode graphique. Les autres options de cet onglet concernent l’aspect de la fenêtre : affichage en mode fenêtre ou plein écran, affichage de la barre d’outils et utilisation des paramètres Taille, Position et Police de la fenêtre doivent être utilisés à chaque démarrage de ce programme.\nLe nom de cet onglet peut faire croire qu’il ne contient que quelques options d’importance secondaire, or c’est exactement l’inverse. Les paramètres accessibles dans l’onglet Divers peuvent par exemple, s’ils sont maladroitement définis ; vous interdire de quitter une fenêtre DOS. Explication des options des options mises à votre disposition : Autoriser l’écran de veille : L’activation de cette option inclut le programme en cours d’exécution dans la fenêtre DOS dans la surveillance de l’inactivité de l’utilisateur par l’économiseur d’écran Windows. Édition rapide : Cette option permet de sélectionner des éléments de la fenêtre DOS en vue de l’utilisation du presse-papiers. Dans la configuration par défaut, vous devez utiliser le menu. Mode exclusif : Si la souris cause des problèmes, ce mode peut y remédier tout en autorisant l’usage de la souris. Attention tout de même : la souris n’est plus utilisable sous Windows 95, et vous ne pourrez plus revenir à l’interface graphique en cliquant au-dehors de la fenêtre DOS. Toujours suspendre : Quand cette option est activée, l’exécution du programme est suspendue lorsqu’il n’est pas utilisé. Avertir si encore actif : Si cette option est activée, un message apparaît lorsque vous tentez de fermer un programme DOS encore actif.\nSensibilité à l’attente : Ce curseur affecte au programme un délai pendant lequel le processeur attend votre reprise d’activité avant d’affecter son temps de calcul à une autre application. Pour augmenter les ressources du programme, déplacez le curseur en direction de Basse, pour diminuer ses ressources, rapprochez le curseur de Haute. Collage rapide : Cochez cette case pour coller les données du presse-papier en mode rapide. Si les données ne sont pas correctement collées, alors décochez cette case. Touches de raccourci de Windows : Si certains raccourcis normalement réservés à Windows sont importants dans votre application DOS, vous pouvez désactiver la prise en charge des raccourcis Windows décochés dans cette section.\n3°) Fonctionnement en mode MS-DOS\nLorsque Windows est redémarré en mode MS-DOS, il se réduit à un petit module de démarrage dans la mémoire et laisse un environnement de travail adéquat pour le mode MS-DOS en mode réel : • Le PC tourne en mode réel calqué sur celui de la version 6.0 de MS-DOS, • Tous les programmes Windows sont arrêtés, • Les fonctions de réseau ne sont plus disponibles, mais elles peuvent être chargées par la commande NET du fichier AUTOEXEC.BAT ou dans la configuration individuelle de démarrage. Windows redémarre automatiquement quand vous quittez l’application MS-DOS. Toutes les applications doivent avoir été terminées correctement et leurs données enregistrées. Quand vous configurez un programme pour le mode MS-DOS, via l’onglet Paramètre de programme avancés de nouvelles options s’ouvrent à vous. Pour que le programme soit démarré en mode MS-DOS réel, vous devez cocher la case Mode MS-DOS. Si vous désactivez l’option Avertir avant de passer en mode MS-DOS vous ne serez pas invité à refermer toutes les autres applications avant le passage de Windows dans ce mode. Ne décochez cette case que si vous avez pris l’habitude de fermer les applications et d’enregistrer vos données avant de lancer le programme.\nEnsuite vous avez le choix entre : • Utiliser la configuration actuelle, définie entre autres par AUTOEXEC.BAT et CONFIG.SYS pour le programme, • Utiliser une configuration spécifique 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 adéquat comme si ils étaient réellement lancés depuis votre disque. Si vous souhaitez utiliser une configuration spécifique sans entrer de lignes de code, cliquez sur le bouton « Configuration ». Dans la boîte de dialogue, cochez les modules dont vous avez besoin et laissez à Windows le soin d’inscrire la ligne adéquate dans le liste de configuration. Enfin, signalons également que s’il existe un fichier DOSSTART.BAT sur votre système, celui-ci sera exécuté lors du lancement du mode réel. Vous pourrez donc inscrire toutes les commandes que vous désirez utiliser dans tout appel au mode MS-DOS. Pensez toujours à tester des programmes DOS récalcitrants sous Windows en mode DOS réel. Dans la majorité des cas, vos problèmes seront résolus. Information : Les préférences d’exécution standard pour toutes les fenêtres DOS sont définies dans le fichier COMMAND.PIF. Si vous modifiez les propriétés dans la fenêtre DOS, chaque programme DOS sera lancé sur la base des paramètres modifiés.\n14°) Programmation avancée\nDans ce bref et dernier chapitre, mon but est de vous montrer que l’on peut vraiment tout faire avec le langage batch, si l’on à en quelque sorte une âme de « bricoleur ». J’ai dit dans le premier chapitre que des fonctions comme le traitement numérique, l’entrée clavier (de mots, et non pas de lettres, telles qu’on le fait avec la commande CHOICE) n’était possible qu’avec l’aide de programme externe. En fait, au moyen de plusieurs astuces, on peut réaliser certaines fonctions intéressantes : • Par le détournement de certaines commandes (utilisation de certaines de leur fonctions pour réaliser d’autres tâches que celles prévues originellement), • Par le « Scriptage » de certains logiciels : en effet, certains programme peuvent exécuter des commandes inscrites dans des fichiers, il suffit donc d’écrire dans des documents les instructions à exécuter par le programme puis de l’appeler en lui indiquant quel fichier de commandes exécuter,\n• Par la redirection des résultats de commande dans des fichiers, puis la recherche et l’extraction d’informations à partir de commandes spécifiques (commande FIND par exemple) Exemple : ce fichier Batch determine si Windows est lancé, si l’on est sous DOS ou si nous somme en mode DOS réel, juste après avoir quitté Windows : Ce listing fait appel au programme MEM (affichage de la mémoire libre/utilisée sur le système), et tente de chercher certains fichiers en mémoire significatifs de l’utilisation de MS-DOS. Suivant les résultats, il affiche un message correspondant.\n@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\nVous pouvez faire mieux ! Le programme DEBUG, permettant entre autres d’afficher l’état de la mémoire, peut être utilisé pour calculer la taille de mémoire disponible sur un disque, etc… Néanmoins, ces solutions s’avèrent peu pratiques, lourdes à mettre en œuvre et plutôt lentes. Si vous souhaitez vous lancer dans la « haute voltige » de la programmation Batch, jetez un coup d’œil 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\nJ'espère que vous avez suivi ce bref tutoriel avec plaisir, et que cette initiation à la programmation en langage Batch ne vous a pas parue trop compliquée. Je vous conseille de trouver des d'autres didacticiels et documents présentant des astuces de programmation et d'autres sujets non traités dans ce document. D'autre part, si vous souhaitez utiliser des commandes d'extensions à MS-DOS pour vos batchs (saisie clavier, opérations logiques, tirages de nombres aléatoires, etc…) je vous invite à télécharger le Toolkit Batch à partir de http://www.astase.com\nSi vous remarquez des erreurs, ou pensez que des compléments sont nécessaires, merci de me contacter (rabusier@aol.com) Bonne continuation ! Rabusier\nDocuments Similar To Tutoriel Batch\nCb Guide Apicom\nMore From fanimed5\nIntro Pen Ti Um


Nouveau remboursement de 50€ sur le Samsung Galaxy S3!\nVous êtes ici : Accueil / Remboursements / Nouveau remboursement de 50€ sur le Samsung Galaxy S3!\nLa première offre de remboursement 2014 concerne le Samsung Galaxy S3, et constitue peut être une des meilleures affaires du moment pour acheter un bon smartphone pas cher!\n50€ remboursés pour un Galaxy S3 pas cher jusqu’à la fin mars\nDeux types de smartphone profitent habituellement d’offres de remboursement: les nouveaux modèles pour booster les ventes au lancement, ou des modèles plus anciens pour écouler des stocks ou revaloriser une ancienne version.\nCe bon de remboursement tomberait plutôt dans cette seconde catégorie, car il concerne une version précédente du smartphone phare de Samsung: le Galaxy S3.\nPour tout achat d’un Galaxy S3 entre le 20 janvier et le 31 mars 2014, le constructeur propose ainsi de rembourser directement 50€, et ce quelque soit la version du smartphone (Galaxy S3 ou Galaxy S3 LTE compatible avec le réseau 4G, seul le S3 mini n’est pas éligible à cette offre de remboursement).\nLe Samsung Galaxy S3 demeure néanmoins un des meilleurs smartphone sur le début du haut de gamme, élu meilleur smartphone il y a 2 ans…\nUn smartphone qui reste donc de très bonne qualité, et qui a l’avantage d’avoir vu son prix baisser avec le lancement de la version suivante (Galaxy S4). Et c’est là que cette promotion devient particulièrement intéressante: vous pouvez aisément cumuler une baisse de prix (découvrez notre guide pour acheter un Galaxy S3 pas cher)…et l’offre de remboursement!\nModalités de participation et cumul avec d’autres offres\nConcernant les modalités de participation à la promotion, elles demeurent relativement simples, avec un suivi possible directement sur le site du constructeur au sein de son espace dédié aux promotions.\nVous devez donc dans un premier temps acheter votre smartphone entre le 20 janvier et le 31 mars 2014. Ensuite, il vous suffit de créer un compte sur l’espace dédié du site de Samsung, de remplir le bulletin de participation en ligne puis de l’imprimer. Une fois imprimé, vous devez le renvoyer avec les pièces justificatives de votre achat (code barre original+facture) et votre RIB, le tout avant le 14 avril 2014 dernier délai.\nUne fois votre dossier validé, vous devriez recevoir le remboursement de Samsung sous quelques semaines directement sur votre compte bancaire.\nVoilà donc une des offres de remboursement les plus intéressantes de ce début d’année, car compatible avec les principales promotions smartphone en cours et concernant un modèle de smartphone pas cher alliant performances et prix réduit (grâce au lancement S4)!\nNouveau remboursement de 50€ sur le Samsung Galaxy S3!, 4.0 out of 5 based on 1 rating\n50€ remboursés pour acheter le Galaxy Grand moins cher!\nUne offre de remboursement valable sur de nombreux smartphones Samsung!


Kyrie Irving Fires Warning Shot en NBA au nom de James Harden | Sideline\nDerrière James Harden et Kyrie Irving, les Brooklyn Nets ont battu les San Antonio Spurs lundi en prolongation, donnant à la franchise sa première victoire à San Antonio depuis le 22 janvier. C'était une victoire impressionnante étant donné que les Nets sont toujours sans Kevin Durant.\nAprès le match, Kyrie Irving a tiré un coup de semonce sur la NBA au nom de James Harden, qui a fait des choses historiques depuis qu'il a été échangé aux Nets.\nJames Harden a déjà sept triples avec Nets\nCONNEXES: Kyrie Irving Tristement Malicieusement LeBron James dans Nets & # 39; Win Over the Lakers\nJames Harden est apparu dans 22 matchs avec les Nets. Il a déjà sept triples-doubles.\nContre les Spurs, Harden est devenu le premier joueur de la NBA à enregistrer 30 points, 15 passes et au moins 10 rebonds avec un chiffre d'affaires nul depuis que les ventes individuelles ont été suivies pour la première fois en 1977-78. The Beard a récolté 30 points, 14 rebonds et 15 passes en tirant 12 sur 23 depuis le terrain et 3 sur 7 depuis l'extérieur de l'arc.\nLes sept triples doubles de Harden sont les plus nombreux en une saison par un joueur des Nets depuis que Jason Kidd en a eu 12 en 2007-08. L'ancien MVP a une moyenne de 25,3 points, 8,7 rebonds et 11,3 passes décisives avec les Nets, qui sont à la deuxième place de la Conférence Est.\nAvec Kevin Durant, James Harden et Kyrie Irving en tête, les Nets sont les favoris pour remporter l'Est cette saison. Quand il s'agit de personnes qui croient que la production de Harden diminuera, Irving a un message pour eux.\nKyrie Irving dit qu'il vaut mieux s'habituer au triple lit double de James Harden\nCONNEXES: James Harden envoie un message silencieux à propos du lancement de fusées: «Je devais faire ce que j'avais à faire»\nKyrie Irving n'est pas surpris par ce que James Harden fait avec les Nets. Le meneur de jeu All-Star dit que les gens devraient s'habituer au triple-double de Harden parce qu'ils veulent en voir beaucoup plus.\n«Quand James est James, cela rend notre travail beaucoup plus facile. Et nous avons donc dû nous habituer à quelqu'un qui est spécial, des choses comme ça quand il s'agit de battre des records », a déclaré Irving, via ESPN.\n«Je suis donc impatient d'être juste à côté de lui, mon nom dans l'histoire du Net – et tous les gars de notre équipe où nous battons des records en équipe, puis chacun de nous se retrouve avec certains des meilleurs jamais joués.\nQuand les Nets ont acheté Harden, tout le monde se demandait comment l'ancienne superstar des Houston Rockets allait s'embellir avec Irving. Jusqu'à présent, les deux stars jouent bien ensemble.\nQuand Kevin Durant revient de la blessure de thésaurisation, les Nets dépasseront probablement les 76ers de Philadelphie dans la table de conférence de l'Est. La défense de Brooklyn s'améliore match après match, et l'équipe a l'attaque la plus explosive de la NBA.\nNon seulement Kyrie Irving fait l'éloge de James Harden, mais il promet également de protéger son coéquipier des Rockets.\nKyrie Irving ne veut aucune tension contre les roquettes\nIl reste un match aux Nets avant la pause des All-Star, et c'est contre les Rockets. James Harden rencontre Houston pour la première fois depuis qu'il a demandé un échange, et Kyrie Irving veillera à ce que les choses restent civiles.\n"Tout le monde à la maison, appréciez le jeu, il n'y aura pas d'excitation et pas de s-talk en cours, sur le court ou à propos de James en ma présence ou celle de quelqu'un d'autre", a déclaré Irving.\n"Nous venons donc à Houston pour profiter du match de basket et y jouer à un niveau élevé au nom de James et du reste des gars, parce que nous savons que c'est une soirée spéciale de toute façon." Catalogue\nKyrie Irving et James Harden ne devraient avoir aucun problème à mener les nuits à la victoire sur les roquettes. Houston a perdu 12 matchs consécutifs.\nLe message Kyrie Irving Fires Warning Shot sur la NBA au nom de James Harden est apparu pour la première fois sur Sportscasting | Sport pur. Catalogue\nDaniel Green a toujours dit qu'il n'avait pas tué le père de Michael Jordan, et un nouveau documentaire pourrait étayer son cas\nBasketball sideline - 11 avril 2021 à 02:16 0\nPrès de 30 ans plus tard, le meurtre de James Jordan, le père de la star de la NBA Michael Jordan, est...\nPrevious articleFlames Centre Derek Ryan sur la déviation\nNext articleFrancona de Cleveland dit que l'équipe n'a pas couvert les allégations de Callaway


Centrafrique: Fipadoc - «You and Me» à Bangui, en République centrafricaine - allAfrica.com\nCentrafrique: Fipadoc - «You and Me» à Bangui, en République centrafricaine\ninterview Par Siegfried Forster\nC'est une boule d'énergie qui dansotte en arrivant pour l'interview. Rafiki Fariala est probablement le plus jeune cinéaste de la République centrafricaine (RCA) et certainement le plus jeune sélectionné pour la compétition du Festival international du documentaire (Fipadoc) à Biarritz, en France. À 21 ans, il a réalisé son premier film. « Mbi na mo » (« You and Me ») est une traversée en 28 minutes de la société centrafricaine et de sa capitale Bangui en compagnie d'un jeune couple.\nRFI : Dans You and Me, nous partageons la vie quotidienne et les espoirs d'Agou, chauffeur de moto-taxi, et de sa femme Émilie. Quelle histoire voulez-vous raconter ?\nRafiki Fariala : C'est d'abord l'histoire centrafricaine. Quand on voit le film, on s'y croit vraiment en RCA, mon pays d'où je viens. C'est l'histoire d'amour d'Émilie et d'Agou. Ils s'aiment bien, mais rêvent un peu comme dans le cinéma américain d'un avenir bien meilleur. Leur seul moyen de subsistance est la moto d'Agou. Après un accident, il ne sait plus comment prendre en charge sa femme Émilie qui n'a que 20 ans et qui ne peut plus continuer les études. Ils savent plus comment accueillir leur futur enfant qui va naître.\nCe jeune couple, est-il représentatif pour la jeunesse centrafricaine ?\nC'est l'espoir que la jeunesse centrafricaine est en train de chercher. Ils rêvent. C'est un peu le rêve de tous les jeunes Centrafricains. Ils essaient de se projeter dans l'avenir. Comment peuvent-ils vivre comme les jeunes en Europe ou en Occident ? Ce film représente la jeunesse centrafricaine qui cherche ce que l'avenir peut leur donner à eux. La Centrafrique est toujours représentée dans la crise. Quand on voit la RCA, on pense toujours à la crise, mais, aujourd'hui, la jeunesse espère et rêve d'un avenir meilleur.\nLa République centrafricaine, un pays de 4,5 millions d'habitants, est pratiquement inconnue en France et en Europe. Sa capitale Bangui, avec ses 600 000 habitants, l'est tout autant. Quelle ville va-t-on découvrir pendant cette traversée en taxi-moto ?\nQuand on parle de la République centrafricaine, on fait toujours allusion à notre premier président, Jean-Bedel Bokassa [président de la RCA de 1966 à 1976, empereur de 1976 à 1979, ndlr]. L'empereur Bokassa reste une référence. À travers ce film, je souhaite que l'on ne s'arrête pas à Bokassa et la guerre. C'est pourquoi il y a les taxis-motos [dans mon film], un phénomène de la vie quotidienne. Les jeunes l'utilisent chaque jour pour se déplacer. C'est le moyen de transport le plus fréquent en RCA.\nÀ travers ce film, j'ai essayé décrire un peu la beauté centrafricaine. C'est vraiment un grand pays émergent. Le peu que nous avons, j'ai essayé de le décrire à travers ces jeunes, à travers leurs espoirs, leur combat quotidien pour une vie et un avenir meilleurs. J'essaie d'écrire toute l'activité centrafricaine, toute sa jeunesse. Il y a aussi cette réalité des taxis-motos qui provoquent des accidents. Cela arrive tous les jours en RCA. Pour cela, on se bat aussi pour dire à la jeunesse : roulez plus doucement pour préserver votre avenir !\nÀ l'écran, on découvre le petit logement d'une pièce du jeune couple, l'école d'Émilie, l'hôpital qui l'accompagne dans sa grossesse, le travail d'Agou comme chauffeur de moto-taxi dans les rues où l'on aperçoit les habitants, des vendeurs ambulants ou des militaires défiler. Ce sont les marqueurs de la société centrafricaine ?\nCe sont les plus marquants pour moi. Je décris la maison, l'école... C'est notre quotidien. Je veux décrire nos activités, notre culture à nous, parce que [habituellement] on fait toujours référence à la guerre. Je veux vraiment qu'on puisse connaître mon pays, la RCA, à travers notre vie sociale, l'école, comment on étudie, comment on va à l'hôpital, dans quelles conditions...\nÊtre aujourd'hui cinéaste en Centrafrique, qu'est-ce que cela signifie ?\nPour moi, être cinéaste en Centrafrique, c'est vraiment un espoir pour le pays, parce que, à travers le cinéma, à travers mes images, je pourrai décrire mon pays, parler davantage de mon pays. Mon pays est inconnu. Partout où l'on va, les gens ont du mal à trouver la RCA sur une carte. À travers nos films centrafricains, nous pourrons parler plus de notre pays et le faire connaître au-delà des frontières.\nConcrètement, cela se fait-il dans quelles conditions ?\nCe film est réalisé avec un petit budget. C'est un premier film d'école. Je n'avais jamais fait de film avant. Imaginez quelqu'un à qui on a dit : aujourd'hui, on essaie de t'apprendre comment on filme. C'était un peu étrange pour moi. L'Alliance française a beaucoup fait pour la jeunesse centrafricaine.\nCe film, c'est vraiment notre quotidien. J'essaie de raconter comment on se réveille le matin. Nous, on ne prend pas de petit déjeuner. Chez nous, on prépare la « boule » [boule de manioc, ndlr] qu'on prend comme petit déjeuner, alors c'est déjà le déjeuner. C'est notre quotidien, c'est notre culture à nous. On essaie à le décrire un peu à travers ces coqs qu'on entend, à travers du réveil, le déplacement dans les marchés. J'ai filmé dans plusieurs quartiers de Bangui. Quand les gens me voyaient avec la caméra, ils trouvaient cela un peu étrange : « wow, ça arrive ici ? ». C'était étonnant de voir un jeune comme moi se balader avec la caméra. Mais cela ouvre les frontières pour nous.\nAgou et Émilie, comment ont-ils réagi au film ?\nIls étaient très contents de le voir eux-mêmes. Quand on tournait, tous les jours, ils me posaient la question : quand sort le film ? Est-ce qu'on arrive à être comme des acteurs dans les films ? Ils étaient très touchés et m'ont demandé de faire un autre documentaire avec eux. Je continue avec une seconde histoire autour de ces deux personnages. Ils sont contents de représenter la jeunesse centrafricaine à travers Mbi na mo.\nEn février ouvrira une salle de cinéma à Bangui. Qu'espérez-vous pour le futur ?\nAu départ, on ne parlait pas de cinéma en RCA. Mais, les Ateliers Varan, nos partenaires et formateurs qui ont bien voulu venir à Bangui, en partenariat avec l'Alliance française qui nous a soutenus et qui était là, ils ont eu l'idée de mettre en place le cinéma. Les ateliers vont renouveler le système de cinéma en RCA. Aujourd'hui, l'Alliance française à Bangui - sous la direction d'Olivier Collin - a construit une grande salle qui sera inaugurée le 2 février. Cela va remettre en place le cinéma. Depuis des années, la jeunesse centrafricaine ne pouvait pas voir des films. Il n'existait pas [plus] de salles. À partir du 2 février, nous aurons une salle avec une capacité de mille personnes debout et 400 personnes assises. Donc, cela sera une grande joie pour la jeunesse centrafricaine. Nous aurons accès à une salle, au cinéma, au matériel... c'est vraiment une grande ouverture au monde.\nVous êtes aussi chanteur. Comment est venu le déclic pour faire un premier film ?\nJe suis chanteur, slameur. D'abord, j'ai été toujours devant la caméra. Dès qu'il y a eu ce concours pour les Ateliers Varan, je savais que cela pourrait m'ouvrir la porte au cinéma. On était 150 candidats, et au final, on a retenu que dix jeunes, dont moi. Et à travers mes images, je peux accompagner mes mots que je faisais dans la musique et les décrire avec les images, afin que le public centrafricain et le monde entier puissent connaître la vérité, découvrir notre culture et notre pays.\nCentrafrique: En RCA, 3 millions de personnes ont besoin d'aide humanitaire mais le financement manque (PAM)\nCentrafrique: La Cour des comptes épingle la gestion de l'Assemblée nationale\nTogo: Transmission des valeurs ancestrales


Le Congrès défie Trump pour adopter un énorme budget militaire - Le Point\nLe Congrès défie Trump pour adopter un énorme budget militaire © AFP/NICHOLAS KAMM\nPublié le 11/12/2020 à 21h13\nLe Congrès américain a définitivement adopté vendredi un budget de 740,5 milliards de dollars pour la défense des Etats-Unis en 2021, bravant la menace d'un veto de Donald Trump.\nCe document, prévoit notamment une hausse de 3 % des salaires du personnel de défense et demande à l'exécutif d'imposer des sanctions à la Turquie pour l'achat par Ankara du système de défense aérienne russe S-400.\nLa loi budgétaire pour la défense, déjà adoptée mardi par la Chambre des représentants à une écrasante majorité, a obtenu 84 voix pour et 13 contre au Sénat. Les deux votes ont permis d'atteindre la "supermajorité" de voix requises dans les deux chambres pour outrepasser un éventuel veto présidentiel.\nAvant d'entrer en vigueur, la loi doit maintenant être envoyée à la Maison Blanche pour que M. Trump la signe, mais le milliardaire républicain menace de lui opposer son veto, notamment parce que le texte n'inclut pas l'abolition d'une loi, dite "article 230", protégeant le statut juridique des réseaux sociaux, qu'il accuse d'être biaisés contre lui.\nSur la Turquie, le document stipule que le président devra dans les 30 jours imposer des sanctions économiques individuelles contre des personnes impliquées dans l'acquisition des systèmes anti-missiles S-400 incompatibles avec les systèmes de défense de l'Otan.\nLe président turc Recep Tayyip Erdogan a pris les devants en affirmant vendredi que des sanctions américaines contre son pays seraient "un manque de respect de la part des Etats-Unis envers son allié très important au sein de l'Otan".\nLa loi de financement militaire prévoit en outre des sanctions contre le controversé gazoduc Nord Stream 2 reliant la Russie et l'Allemagne, mais cette fois-ci aucun calendrier n'est fixé et le texte prévoit que le chef de la diplomatie américaine devra en discuter auparavant avec les pays concernés.\nInterrompu depuis près d'un an, le chantier du gazoduc censé doubler les capacités de livraison de gaz russe et garantir la sécurité des approvisionnements de l'Europe occidentale via la mer Baltique, a repris vendredi.\nLe Sénat s'est par ailleurs accordé vendredi un court répit en prolongeant d'une semaine la loi de finances des Etats-Unis, afin d'éviter une paralysie de l'administration fédérale ("shutdown") et se ménager plus de temps pour négocier le budget 2021.\nLes aides accordées aux chômeurs dans le cadre du gigantesque plan de relance de 2.200 milliards de dollars adopté au printemps expirent au lendemain de Noël et les expulsions de locataires seront de nouveau autorisées, alors que des millions d'Américains sont désormais incapables de payer leur loyer faute de revenus suffisants.\n11/12/2020 21:13:00 - Washington (AFP) - © 2020 AFP\nVous lisez actuellement : Le Congrès défie Trump pour adopter un énorme budget militaire


La Manufacture - ABC Salles\nLa Chapelle (L2-4-5)\nChâteau Rouge (L4)\nMarx Dormoy (L12)\nMarcadet Poissonnier (L12)\nGare du Nord (RER B)\nGare du Nord (RER D)\nCocktails, séminaires, conférences, expositions, défilés, lancement de produit... La salle est idéale pour surprendre vos invités et leur faire découvrir un lieu d'importance patrimoniale et culturelle.\nSituée au cœur d'une ancienne manufacture de bouton d'architecture Eiffel, son style épuré, sa grande verrière qui surplombe deux étages étonne les visiteurs, qui ne s'attendent pas à pénétrer dans un lieu aussi vaste et lumineux.\n° Mobilier (tables, chaises, fauteuils,... selon disponibilités)\n° Cuisine équipée\n° Portants pour vestiaire\n° service d’événementiel œnologique\n° Vous avez des besoins spécifiques ? Voyons ensemble ce que nous pouvons vous proposer.\ndisponibilite & accessibilite\nLe soir à partir de 19h et le week-end. L'espace est situé à proximité des stations de métro Gare du Nord, Marcadet Poissonniers et Marx Dormoy.\nN'hésitez pas à nous contacter au /b> pour tout supplément d'information.\nNos salles de réunions peuvent accueillir conférences, réunions, ateliers, meet-up. Vous pourrez également y passer vos appels en toute discrétion.\nNous accueillons et orientons vos clients et collaborateurs.\nVous pouvez venir visiter la Manufacture dans la journée, de de 9h à 18h, ou nous appeler au pour tout supplement d'information.\nAtrium 300 M² 100 80 80 - 10 Pro / Privés n/a\nGrande Salle 45 M² 40 40 40 12 4 Pro / Privés n/a\nSalle formation 21 M² - - - 14 12 Pro / Privés n/a\nPetite Salle 20 M² - 8 - - - Pro / Privés n/a\nSous Sol Grande SallePetite Salle\nLes tarifs sont estimés à l'heure en HT.\nGrande Salle 30\nSalle formation 0\nPetite Salle 15\nLes Jardins d'Académos\nLa Maison Starck\nFirst Avenue American Restaurant


What the Fuck ??! Oui, vous avez bien lu, on vous cause aujourd’hui de Goal of the Dead, en somme un mix entre Shaolin Soccer et La Horde ! Concrètement, Goal of The Dead sera un délire portnawak composé en diptyque, avec un premier volet baptisé « Première mi-temps » puis d’un second baptisé… bah « Seconde mi-temps », voyons, faut suivre un peu ! C’est français, réalisé par Benjamin Rocher (La Horde) pour la première partie et par Thierry Poiraud (Atomik Circus) pour la deuxième. Le duo azvait tenté de faire appel à la mobilisation des fans via un financement par internet mais les fonds collectés ne furent pas suffisant. Toutefois, la structure [Capture the Flag] Films a réussi à mener à son terme l’affaire qui nous amuse joyeusement ce matin !\nVoici la bande-annonce avec du foot et des zombies. Sortie en salles sur Paris le 27 février en séance spéciale hebdomadaire (au cinéma Les 3 Luxembourg pendant un mois). Le film bien grindhouse dans l’âme, s’exportera ensuite dans le reste de la France à partir d’avril.\nTags: 2013, actu, actualité, annonce, bande, bande-annonce, bientôt, blog, casting, cinéma, date de sortie, extrait, film, foot, football, Goal of the dead, histoire, horreur, images, info, modociné, mondo-ciné, mondociné, news, photos, prochain, prochainement, projet, réalisateur, résumé, série B, site, trailer, vidéo, zombies