1 – Que-est-ce qu’un fichier batch ?
Il s’agit de simples fichiers textes contenant des lignes de commande qui sont exécutées séquentiellement, l’une après l’autre. Ces fichiers utilisent l’extension spéciale « .bat » ou « .cmd ». Les fichiers de ces types sont reconnus et exécutés via une interface (parfois appelée console) fournie par le système et appelée interpréteur de commandes. Dans Windows XP/Vista, l’interpréteur de commandes est le fichier cmd.exe. Le grand assortiment des commandes polyvalentes disponibles dans Windows XP / Vista fait des fichiers batch un outil puissant.
Un fichier batch est simplement créé en ouvrant n’importe quel éditeur de texte comme Notepad, en entrant quelques lignes contenant des commandes, et en sauvant le fichier avec une extension .bat ou .cmd. (L’extension CMD est limitée aux versions de Windows les plus récentes et les fichiers .cmd ne sont pas reconnus sur les systèmes Windows 9x/Me. Dans Windows XP et Vista, il ya peu de différences entre les deux extensions). N’utilisez pas Wordpad ou Word à moins que vous ne fassiez très attention à sauvegarder les fichiers au format texte pur. Les commandes elles-mêmes sont souvent très simples et il n’y a pas besoin d’apprendre un langage de programmation. Ceux qui le veulent peuvent explorer les subtilités qui sont disponibles avec les branchements et les boucles, mais je vais limiter mes explications ici à quelques applications simples pour des tâches de tous les jours. L’accent sera mis sur le gain de temps et d’effort pour certaines choses comme le ménage et la gestion de fichiers simple.
L’exécution d’un fichier batch est très simple, il suffit de double-cliquer dessus. Les fichiers batch peuvent aussi être lancés dans une invite de commande ou dans l’invite Démarrer-Exécuter. Dans ce cas, vous devez utiliser le chemin complet à moins que le fichier ne se trouve dans l’un des chemins du PATH
2 – Construire un fichier Batch
Pour la suite de ce chapitre, je vais supposer que vous avez lu la page d’introduction et la page sur les commandes.
La première ligne d’un fichier batch est souvent la commande
@echo off
Par défaut, un fichier batch va afficher les commandes au fur et à mesure de leur exécution. Le but de cette première commande est de désactiver cet affichage. La commande « echo off » désactive l’affichage pour le script entier, sauf pour la commande « echo off » elle-même. Le signe « @ » en début de ligne masque également la commande « echo off ». Cette nuance n’est pas vraiment importante pour tous dans notre contexte, mais je la mentionne, car elle est souvent rencontrée dans les scripts. Les scripts que je vais décrire sont très courts et l’absence de cette ligne ne fera pas une grande différence. Toutefois, pour une question de bonne pratique, nous allons l’entrer dans nos scripts.
Notre premier exemple de fichier batch va lister tous les fichiers d’un répertoire et placer la liste dans un nouveau fichier texte. Nous allons utiliser la commande « dir » décrite sur une autre page. Ouvrez le bloc note et entrez la ligne « @echo off » (sans les guillemets). Sur une autre ligne, écrivez ensuite
dir « C:Program Files » > C:list_of_program_files.txt
(je suppose ici que votre dossier Program Files se trouve sur le disque C . Cela va donc nous donner un fichier de deux lignes
@echo off
dir « C:Program Files » > C:list_of_program_files.txt
Enregistrer maintenant ce fichier sous « listeprogrammes.bat » (sans guillemets) dans un emplacement de votre choix. Vérifiez que Notepad enregistre sous le type « Tous les fichiers » et non pas « fichier texte ».
Trois points importants sont illustrés dans cet exemple. Remarquez que l’on a utilisé les chemins complets y compris la lettre du lecteur. Remarquez également les guillemets autour de « C:Program Files ». Les chemins doivent être entourés de guillemets s’il y a un espace dans un nom de fichier ou de dossier. Enfin, notez que le symbole de redirection « > » est utilisé pour envoyer le résultat dans un fichier plutôt que vers l’écran.
Pour utiliser ce fichier, vous devez simplement double-cliquer dessus. Un fichier appelé C:list_of_program_files.txt sera alors créé.
3 – Une version plus générale avec des arguments
Le fichier dont nous avons parlé précédemment est limité à la liste d’un répertoire en particulier et place la liste dans un fichier particulier. Cependant, il est facile de créer un script capable de lister le dossier de votre choix et de placer la liste dans le fichier que vous souhaitez. Les fichiers batch peuvent utiliser des arguments ou des données saisies par l’utilisateur. Le processus fait appel à des paramètres de la forme %1, %2. Ils sont remplacés dans le script par les données entrées par l’utilisateur. Dans ce cas, le fichier ne peut pas être lancé simplement en cliquant mais doit être exécuté à partir de l’invite de commandes. Le nouveau fichier batch sera alors :
@echo off
dir %1 > %2
Saisissez-le dans le bloc-notes et enregistrez-le sous « makelist.bat ». Pour exécuter le script, ouvrez une invite de commandes et tapez
{chemin}makelist unDossier quelquepartliste.txt
où unDossier est le dossier (avec un chemin complet) dont vous voulez obtenir la liste dans quelquepartliste.txt. Vous avez maintenant un petit programme qui liste du répertoire que vous choisissez. Si vous voulez aussi la liste des sous-répertoires, utilisez la commande
dir /s %1 > %2
Si vous voulez une liste qui n’inclut que certain types de fichiers, les fichiers MP3 par exemple, utilisez :
dir %1*.mp3 > %2
La ligne précédente illustre l’utilisation du joker « * ». La possibilité d’utiliser des jokers augmente grandement la puissance des fichiers batch.
Vous pouvez vous simplifier la vie en mettant tous vos scripts batch dans un dossier qui est dans le PATH
4 – L’instruction Rem
Les fichiers batch contiennent très souvent des lignes qui commencent par « Rem ». Il s’agit d’un moyen permettant d’insérer des commentaires et de la documentation. Lors de l’exécution, l’ordinateur ignore tout ce qui se trouve sur une ligne commençant par « Rem ». Utiliser des commentaires dans les fichiers batch complexes peut être une bonne idée. Notez toutefois que l’interpréteur de commande lit tout de même les lignes « Rem » donc si vous en utilisez beaucoup trop, cela peut ralentir l’exécution du script.
5 – Plus d’exemples
Après avoir lu cette autre page, il est facile de créer des fichiers batch pour effectuer de la maintenance. Pour créer un script de sauvegarde simple, utilisez xcopy. Le code pourrait être :
xcopy %1 %2 /d /s
Cette commande va mettre à jour tous les fichiers du répertoire source %1 et de ses sous-répertoires en les copiant dans le dossier de sauvegarde %2. En pratique, un script de sauvegarde utile aura besoin de plus de paramètres décrits dans le chapitre Xcopy.
De même avec les explications précédentes sur la commande « del », voici un script permettant de supprimer tous les fichiers portant l’extension TMP :
del %1*.tmp
6 – Demander une saisie à l’utilisateur
Vous pouvez aussi interagir avec l’utilisateur et lui demander de saisir des données. L’ancien DOS avait la commande « Choice » pour une interaction très limitée, mais celle-ci a été remplacée dans Windows XP/Vista par la commande « set /p » qui est plus polyvalente. La syntaxe est :
set /p variable= [chaine_de_caracteres]
« Variable » correspond au nom de la variable qui contiendra les données saisies par l’utilisateur. « chaine_de_caracteres » correspond au message qui s’affichera à l’utilisateur. Vous pouvez omettre « chaine de caracteres » Voici un exemple qui demande son nom à l’utilisateur :
set /p nom= Quel est votre nom ?
Cela va créer la variable %nom% dont la valeur contiendra la saisie de l’utilisateur. Notez que l’utilisateur doit taper « Entrée » à la fin de sa saisie
(La commande « Choice » est de nouveau disponible dans Vista sous une forme plus puissante).
7 – Pour en savoir plus
Les exemples présentés ici sont simples et cette page ne prétend pas tout expliquer sur les fichiers batch. Le but de ce chapitre est de montrer combien ces scripts sont simples et d’encourager le lecteur à vouloir en savoir plus à leur sujet. Des fichiers batch plus puissants peuvent même être écrits en ajoutant simplement les prises de décision et des méthodes pour effectuer plusieurs fois les mêmes choses. Les branchements avec « if » et « goto » sont détaillés ici ; l’utilisation de « For » pour effectuer des tâches répétitives est expliquée sur une autre page.
Les fichiers batch sont expliqués dans de nombreux livres sur Windows, sur de nombreux sites web et sur ce site Microsoft. Même si vous ne voulez pas en écrire, il en existe quelques-uns prêts à être utilisés. Cet autre site liste de nombreuses sources.