Les Fichiers Batch by Grare Stéphane - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

INTRODUCTION

L'intérêt des Batchs est donc d'automatiser des tâches répétitives effectuées sous DOS. Les fichiers Batch peuvent

également utiliser toutes les commandes DOS, ce qui rend disponible pour le programmeur un grand nombre de fonctions.

Enfin, leur taille est relativement légère par rapport à d'autres programmes, ce qui facilite leurs "transferts" sur différents disques et supports de stockage. Cependant…

· Le langage Batch n'est pas compilé, il est interprété par COMMAND.COM ce qui rend plus lent l'exécution de programmes

Batch par rapport à des applications écrites directement en langage machine,

· Les fichiers Batch sont directement éditables, donc votre code n'est pas "protégé" à la copie par d'autres programmeurs,

· Enfin, et surtout, des opérations élémentaires telles que le traitement de chaînes de caractères, d'opérations

mathématiques... n'existent pas sous DOS, ce qui implique l'usage de programmes externes (s'ils existent, selon les cas).

TABLE DES MATIERES

Création d'un fichier Batch

Notions de bases sur les fichiers Batch

Les commandes spécifiques

Passage de paramètres

Les Boucles

Aller plus loin dans les fichiers Batch

Exemple de fichiers Batch

2

index-3_1.jpg

index-3_2.jpg

1 – Création d'un fichier Batch :

Le terme "Batch" désigne un fichier contenant une suite de commandes qui seront traitées automatiquement. Nous appelons

aussi cela un "traitement par lot". Afin de créer votre premier fichier Batch, suivez cette procédure :

1) Ouvrez un éditeur de texte : Le Bloc-notes par exemple.

2) Inscrivez vos lignes de commandes.

3) Enregistrez votre fichier texte.

4) Cliquez sur le nom du fichier puis appuyez sur la touche F2. Vous serez en mode "Édition".

5) Renommez le fichier en changeant l'extension .txt en .bat. À la question : "Voulez-vous vraiment renommer le fichier",

répondez par Oui. Attention de désactiver au préalable la case "Masquer les extensions de fichiers dont le type est connu"

dans les options avancées de l'Explorateur Windows.

Pour créer un fichier Batch, vous pouvez également utiliser directement l'interpréteur de commandes : pour cela, utilisez la

commande EDIT :

Appeler alors la commande EDIT pour l'éditeur de texte :

2 – Notions de base sur les fichiers Batch :

Malheureusement, la majorité des sources intéressantes qui pourront vous aider à approfondir les techniques de la

programmation Batch sont souvent en anglais... "Xset" est un outil indispensable pour appendre à écrire des fichiers Batch

sous toutes les versions de Windows. De plus, Marc Stern propose de nombreux didacticiels à partir de son site Internet :

http://xset.tripod.com/.

Jerold Schulman qui m'a autorisé à citer quelques-uns de ces scripts anime un site Internet qui propose d'innombrables

pages sur la programmation Batch : http://www.jsiinc.com/. C'est, par ailleurs, un des meilleurs sites traitant des systèmes

NT de Windows.

D'excellents scripts sont également visibles à partir de cette adresse : www.uwasa.fi/~ts/http/http2.html#batch. Timo Salmi

propose une multitude de solutions permettant de résoudre les problèmes les plus courants quand on commence à se lancer

dans la programmation Batch.

Ritchie Lawrence met en lignes de nombreux modèles de scripts et propose quelques utilitaires fort bien faits qui vous

permettront de réaliser des choses étonnantes en mode Ms-Dos ou en Invite de commandes. L'adresse de son site est la

suivante : http://www.commandline.co.uk/index.html.

Enfin, une source inépuisable de trouvailles est proposée à partir de ce forum recouvrant une multitude de thématiques dont

Ms-Dos et l'Invite de commandes : http://www.experts-exchange.com/Operating_Systems/MSDOS. La plupart des exemples

de scripts expliqués dans ce chapitre s'inspirent directement ou indirectement des techniques présentées par ces différents

auteurs.

Quelle différence entre l'extension .cmd .btm et .bat ?

Un fichier . cmd ou .btm ne sera pas reconnu en tant que tel par Windows 9X. Nous pouvons voir cela comme une sorte de

3

garde-fou si tel fichier de commande est parfaitement incompatible avec ces versions de Windows. Par ailleurs, le processus

est légèrement différent : dans le cas d'un fichier .bat ou .cmd, chaque ligne du fichier est exécutée individuellement et le

fichier fermé puis ouvert à chaque lecture d'une nouvelle commande. Dans le cas d'un fichier .btm, le fichier n'est ouvert

qu'une fois, puis lu en mémoire et enfin fermé. C'est donc a priori le mode le plus rapide. Surtout si ce sont des commandes

internes qui sont exécutées.

Se servir des parenthèses dans les fichiers de scripts :

Si vous souhaitez rediriger le résultat de différentes commandes dans un même fichier texte. Par exemple :

@echo off

DIR /s /b *.doc >> resultat.txt

DIR /b *.dot >> resultat.txt

REM etc.

@echo on

Il est dans ce cas plus simple de saisir :

@echo off

(

DIR /s /b *.doc

DIR /s /b *.dot

) >> resultat.txt

@echo on

Cela vous évitera de spécifier plusieurs fois le même fichier de sortie. Par ailleurs, c'est une manière de créer de toutes

pièces un fichier texte :

@echo off

(

@echo Bonjour,

@echo Tout le monde !

) > test.txt

Dans ce dernier cas, les commandes sont regroupées.

Afficher le code de sortie :

À chaque fois que vous saisissez une commande, cette dernière produit un code de sortie qui est principalement :

1 : La commande a renvoyé une erreur

0 : La commande n'a pas renvoyé d'erreur.

C'est la variable %Errorlevel% qui est chargée de suivre les fluctuations de la réussite ou non des commandes exécutées. La

commande "Set" teste les "Errorlevel" en partant de la plus petite valeur puis en procédant par incrémentation de 1. La commande " GOTO" démarre de la plus grande valeur puis procède par décrémentation de 1.

Gérer les caractères accentués :

Les différences entre la norme Ansi (Windows) et OEM (Ms-Dos) font que si vous vous servez d'un éditeur de texte comme le

Bloc-Notes les caractères accentués ne s'afficheront pas correctement dans les sorties écran en mode "Console". Ainsi, la

phrase "Je répète : "Vous êtes un entêté" s'affichera comme cela : Je rÚpÞte : "Vous Ûtes un entÛtÚ". Il y a différentes solutions :

Vous pouvez toujours vous servir de l'éditeur de texte prévu dans toutes les versions de Windows : " Edit".

ll existe de nombreux programmes vous permettant d'opérer la conversion Ansi vers OEM et vice-versa. "OEMANSI.exe" est

un programme écrit en français que vous pouvez télécharger à partir de cette adresse :

http://perso.wanadoo.fr/andre.araste/tele2.htm

Décompressez l'archive ZIP nommée Oemansi.zip puis double-cliquez sur ce fichier exécutable : Setup.exe afin de lancer

l'installation de ce logiciel. Imaginons que notre fichier à convertir s'appelle Test.bat suivez la procédure suivante :

1) Cliquez sur Démarrer/Tous les programmes/OEMANSI/OEMANSI.

2) Cliquez sur le bouton Ouvrir Fichier.

3) Dans la liste déroulante Fichiers de type :, sélectionnez Tous les fichiers (*.*) puis votre fichier Batch.

4) Cochez le bouton radio ANSI(Win) puis la flèche dirigée vers le bas.

4

Il est possible d'effectuer l'opération inverse !

5) Cliquez sur le bouton Sauvegarde OEM puis lancer le processus de conversion.

6) Confirmez le remplacement ou non de l'ancienne version.

Gérer les caractères réservés :

Ces caractères ne peuvent pas être employés "tels quels" dans un script. Le signe % pour être "compris" dans un fichier de

script doit être redoublé. Par ailleurs, nous avons déjà vu que pour afficher un caractère réservé il faut le faire précéder du

signe ^. Dans ce cas-là, il ne sera pas assimilé à une commande, mais bien à un caractère. Afin d'afficher les signes : ! ^ &

< > >> " | créez un fichier Batch contenant cette commande :

@echo off

ECHO ^! ^% ^^ ^& ^< ^> ^>^> ^" ^|

@echo on

Une manière d'afficher les caractères de redirection :

@echo off

<nul (SET /p z=Le^|texte^|de^|sortie) >sortie.txt

@echo on

Nous redirigeons le produit de la commande " SET" vers le fichier Sortie.txt, mais en désactivant toute sortie-écran.

L'utilisation de la commande " SET" sera expliquée plus loin.

3 – Liste des commandes :

Dans la rubrique suivante, nous détaillerons certaines commandes spécifiques. Il s’agit ici d’un aperçu rapide des

commandes existantes en batch.

Définit les fonctions qui modifient l'affichage, contrôlent le déplacement du curseur et réaffectent

ANSI.SYS

les touches.

Permet aux programmes d'ouvrir les fichiers de données qui se trouvent dans les répertoires

APPEND

spécifies, comme s'ils figuraient dans le répertoire en cours.

ARP

Affiche, ajoute, et supprime les informations arp des dispositifs du réseau.

ASSIGN

Permet d'assigner une nouvelle lettre à un lecteur

ASSOC

Affiche les associations de fichier.

AT

Programme une heure pour exécuter une commande.

ATMADM

Liste les connexions et adresses vu par Windows ATM call manager.

ATTRIB

Affiche et change les attributs de fichiers.

BATCH

Fichier qui exécute une série de commande.

BREAK

Active / désactive CTRL + C dispositif

CACLS

Affiche et modifie le fichier ACL.

CALL

Appelle un fichier batch à partir d'un autre fichier batch.

CD

Change de répertoire.

CHCP

Permet de changer le jeu de caractères.

CHDIR

Idem que CD.

CHKDSK

Vérifie que le disque dur en format FAT ne contient pas d'erreurs.

CHKNTFS

Vérifie que le disque dur en format NTFS ne contient pas d'erreurs.

La commande choice demande à l'utilisateur de saisir une des lettres proposées. La

CHOICE

récupération du choix se fait par la commande errorlevel.

5

CLS

Efface l'écran.

CMD

Ouvre la fenêtre de commande DOS.

COLOR

Change les couleurs de l'arrière-plan et de la police de la fenêtre

COMMAND

Idem que CMD

COMP

Compare des fichiers.

COMPACT

Compresse et décompresse des fichiers

CONTROL

Ouvrez les icônes de panneau de commande de la fenêtre DOS.

CONVERT

Converti du format FAT vers NTFS.

COPY

Copie un ou plusieurs fichiers vers une différente destination.

CTTY

Modifie les périphériques et d'entrées standards

DATE

Affiche ou modifie la date système.

Utilitaire permettant des programmes en assembleur afin de modifier les paramètres Hardware.

DEBUG

Debug utility to create assembly programs to modify hardware settings.

DEFRAG

Permet de défragmenter un disque dur.

DEL

Supprime un ou plusieurs fichiers.

DELETE

Idem que DEL.

DELTREE

Efface un ou plusieurs fichiers et/ou répertoires

DIR

Affiche la liste des fichiers et des sous-répertoires d'un répertoire.

DISABLE

Désactive les services ou drivers windows.

DISKCOMP

Compare les contenus de deux disquettes.

DISKCOPY

Copie le contenu d'une disquette sur une autre.

Modifie les lignes de commande, rappelle des commandes Windows, et permet de créer des

DOSKEY

macros.

Représente les répertoires et les fichiers sous forme d'icônes dans un environnement de menus

DOSSHELL

déroulants qui contiennent les principales commandes du système d'exploitation.

DRIVPARM

Redéfinit les paramètres d'un lecteur.

ECHO

Affiche des messages… l'écran ou active/désactive l'affichage des commandes.

EDIT

Affiche et édite des fichiers.

EDLIN

Idem que EDIT.

EMM386

Charge extended Memory Manager.

ENABLE

Désactive les services ou drivers windows

ENDLOCAL

Stoppe la localisation des modifications de l'environnement dans un fichier de commandes.

ERASE

Supprime un ou plusieurs fichiers.

EXIT

Quitte l'interpréteur de commandes (CMD.EXE).

EXPAND

Décomcodesse un fichier.

EXTRACT

Utilitaire de décomcodession des fichiers archives cab de windows 95.

FASTHELP

Affiche des informations sur les commandes de Windows.

6

FC

Compare deux fichiers ou groupes de fichiers, et affiche les différences entre eux..

FDISK

Configurer / partitionner un disque dur.

FIND

Cherche une chaîne de caractères dans un ou plusieurs fichiers.

FINDSTR

Cherche des chaînes de caractères dans un ou plusieurs fichiers.

FIXBOOT

Ecrit un nouveau secteur de boot.

FIXMBR

Ecrit un nouveau secteur de boot sur un lecteur..

FOR

Exécute une commande sur chaque fichier d'un groupe de fichiers.

FORMAT

Formate un disque pour utilisation avec Windows.

FTP

Commande pour se connecter et opérer sur un serveur FTP.

FTYPE

Affiche ou modifie les types de fichiers utilisés dans les associations d'extensions.

GOTO

Poursuit l'exécution d'un fichier de commandes à une ligne identifiée par une étiquette.

GRAFTABL

Permet à Windows d'afficher un jeu de caractères en mode graphique..

HELP

Affiche des informations sur les commandes de Windows.

IF

Effectue un traitement conditionnel dans un fichier de commandes.

IFSHLP.SYS

Gestionnaire de fichier 32-bit.

IPCONFIG

Commande réseau pour voir / configurer les paramètres réseau.

KEYB

Charger un pilote de clavier.

LABEL

Créé modifie ou supprime le nom de volume d'un disque.

Charge un programme en zone de mémoire supérieure, ce qui libère de la mémoire

LH

conventionnelle pour d'autres programmes.

LISTSVC

Affiche tous les services, pilotes et types de démarrage.

LOADFIX

Charge un programme sur les codemiers 64k.

LOADHIGH

Charge un programme résident dans la mémoire supérieure.

LOCK

Verrouille l'accès à un disque par une application

Cette commande affiche les installations de Windows et de Windows NT détectées, et demande

le mot de passe de l'administrateur local pour la copie de Windows à laquelle vous souhaitez

LOGON

vous connecter.

NB: Au bout de 3 échecs, la console s'arrête et l'ordinateur redémarre...

MAP

Affiche le nom d'un lecteur.

MD

Crée un répertoire.

MEM

Affiche la mémoire du système.

MKDIR

Crée un répertoire.

MODE

Configure un périphérique du système.

MORE

Affiche la sortie écran par écran.

MOVE

Déplace un ou plusieurs fichiers d'un répertoire à un autre.

MSAV

Microsoft anti-virus.

MSD

Utilitaire de Diagnostics.

MSCDEX

Utilitaire permettant d'utiliser, de charger et accéder à un CD-ROM.

7

NBTSTAT

Mise à jour du cache du fichier Lmhosts

NET

Mettre à jour, réparer, ou voir le réseau et les paramètres réseau.

NETSH

Configure les informations d'un réseau dynamique et statique.

NETSTAT

Afficher les statistiques de protocole et l'état actuel des connexions NetBIOS sur TCP/IP

NLSFUNC

Charge un jeu de caractère spécifique.

NSLOOKUP

Permet de tester un serveur DNS.

PATH

Affiche ou définit le chemin de recherche des fichiers exécutables.

Outil de trace qui combine les caractéristiques du ping et de tracert avec des informations

PATHPING

additionnelles qu'aucune de ces 2 commandes ne fournit.

PAUSE

Interrompt l'exécution d'un fichier de commandes et affiche un message

PING

Affiche les informations de connexion à une autre machine.

POPD

Restaure la valeur précédente du répertoire courant enregistré par PUSHD.

POWER

Conservez la puissance d'un ordinateur portable.

PRINT

Imprime un fichier texte.

PROMPT

Modifie l'invite de commande de Windows.

PUSHD

Enregistre le répertoire courant puis le modifie.

QBASIC

Ouvre QBasic.

RD

Supprime un répertoire vide.

REN

Renomme un ou plusieurs fichiers.

RENAME

Renomme un ou plusieurs fichiers.

RMDIR

Supprime un répertoire vide.

ROUTE

Manipule les tables de routage du réseau

RUNAS

Autorise un utilisateur à exécuter un programme un autre ordinateur.

SCANDISK

Lance l'utilitaire scandisk.

SCANREG

Scanne et restaure la base de registre.

SET

Affiche, définit ou supprime des variables d'environnement Windows.

SETLOCAL

Commence la localisation des changements de l'environnement dans un fichier de commandes.

SETVER

Définit le numéro de version que MS-DOS fournit à un programme.

Permet de verrouiller les fichiers lorsqu'ils peuvent être accédés par plusieurs programmes en

SHARE

même temps

SHIFT

Modifie la position des paramètres remplaçables dans un fichier de commandes.

SHUTDOWN

Éteint l'ordinateur.

SMARTDRV

Crée un cache disque dans la mémoire étendue.

SORT

Trie les éléments en entrée.

START

Lance une fenêtre pour l'exécution du programme ou de la commande.

SUBST

Affecte une lettre de lecteur à un chemin d'accès.

SWITCHES

Configure le clavier étendu.

8

index-9_1.jpg

index-9_2.jpg

SYS

Transférer les fichiers système vers un lecteur.

TELNET

Telnet vers un autre ordinateur / système.

TIME

Affiche ou définit l'heure de l'horloge interne du système.

TITLE

Définit le titre de la fenêtre MS-DOS.

TRACERT

Permet de voir le chemin parcouru entre votre poste et l'ordinateur qui héberge le site

TREE

Représente graphiquement l'arborescence d'un lecteur ou d'un chemin.

TYPE

Affiche le contenu d'un fichier texte.

UNDELETE

Récupère un fichier qui a été effacé.

UNFORMAT

Annule un formatage.

UNLOCK

Unlock un disque dur.

VER

Affiche le numéro de version.

Indique à Windows s'il doit ou non vérifier que les fichiers sont écrits correctement sur un disque

VERIFY

donné.

VOL

Affiche le nom et le numéro de série du volume.

XCOPY

Copie des fichiers et des arborescences de répertoires.

Pour de plus ample détail sur chacune de ses commandes, consulter l’aide en ligne de commande. Pour cela, il suffit d’écran

la commande exemple : DEL /?

Et l’aide s’affiche :

9

index-10_1.png

4 – Les commandes spécifiques :

ECHO ON/OFF

Permet d'activer / désactiver l'affichage des commandes qui sont exécutées. Par défaut, c'est la commande ECHO ON qui

est utilisée. L'utilisation de l'arobase permet de biffer le statut de la commande " ECHO". Par ailleurs, la commande "Echo off" évite l'affichage des commandes contenues dans le script.

@echo off

ECHO Bonjour

@echo on

ECHO message

Permet l'affichage du message. 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. N'utilisez pas d'accent,

car MS-DOS va remplacer les caractères accentués par des