La ligne de commande Windows et les fichiers batch


précédentsommairesuivant

XXIV. Les fichiers Batch (scripts) dans Windows

Ce chapitre est une traduction de la page http://commandwindows.com/batch.htm dont l'auteur original est Victor Laurie.

Les fichiers batchs ou scripts sont de petits fichiers texte faciles à écrire qui contiennent une série de commandes. Ils sont assez simples pour que les utilisateurs d'ordinateurs personnels puissent en tirer avantage.

Les administrateurs de systèmes sont bien conscients de l'utilité des fichiers batch, mais les utilisateurs de PC ne les connaissent généralement pas ou sont intimidés par l'écriture ou l'exécution d'un script. C'est dommage car cela signifie que beaucoup passent à coté d'un outil puissant pour la réalisation de routines ou de tâches répétitives. Bien que les fichiers batch puissent être assez sophistiqués et utilisé pour l'administration de systèmes et de réseaux complexes, ils peuvent aussi être très simples et très courts. Dans ce chapitre, je vais décrire les fichiers batch et expliquer quelques exemples simples qui permettent de simplifier les tâches de base.

XXIV-A. 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

XXIV-B. 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

 
Sélectionnez

@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

 
Sélectionnez

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

 
Sélectionnez

@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". Voyez l'image ci-dessous.

Image non disponible

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éé.

XXIV-B-1. 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 :

 
Sélectionnez

@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

 
Sélectionnez

{chemin}makelist unDossier quelquepart\liste.txt

unDossier est le dossier (avec un chemin complet) dont vous voulez obtenir la liste dans quelquepart\liste.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

 
Sélectionnez

dir /s %1 > %2

Si vous voulez une liste qui n'inclut que certain types de fichiers, les fichiers MP3 par exemple, utilisez :

 
Sélectionnez

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

XXIV-B-2. 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.

XXIV-B-3. 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 :

 
Sélectionnez

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 :

 
Sélectionnez

del %1\*.tmp

XXIV-B-4. 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 :

 
Sélectionnez

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 :

 
Sélectionnez

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).

XXIV-C. 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.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright traduction ©2009 Thomas Garcia. Aucune reproduction, même partielle, ne peut être faite de cette traduction et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 Euros de dommages et intérets.
Copyright site web original : Victor Laurie