Chapitre 24 : Astuces pour l’utilisation de l’invite de commande Windows

         1 – Comment afficher une ligne vide dans un fichier batch

    Parfois, vous souhaitez afficher dans la console une ou deux lignes blanches. Il n’est pas évident de savoir comment faire… Entrer simplement la commande « echo » ne fonctionnera pas parce qu’elle va afficher le statut actuel de echo. L’astuce est d’entrer

echo.
Notez que « echo » est suivie d’un point sans espace entre echo et le point.

         2 – Forcer echo à ne pas parcourir les arguments

    L’astuce précédente est un cas particulier d’un mode d’utilisation plus général de la commande « echo ». Bien que la commande soit utilisée pour afficher du texte ou des messages, elle peut aussi prendre des arguments tels que « on » ou « off ». Si vous tapez

echo off
vous n’allez pas afficher la chaîne « off » mais configurer la commande « echo » elle-même. Pour afficher la chaîne « off », vous devez utiliser

echo. off
En d’autres termes, placer un point à la fin de « echo » force la commande à afficher ce qu’il y a sur la suite de la ligne, sans vérifier si la chaîne est un cas particulier.

         3 – Vérifier si un fichier existe

    Une variante spéciale de l’instruction « if » peut être utilisée pour savoir si un fichier existe déjà. L’instruction à utiliser est :

if exist unFichier uneCommande
L’instruction peut également tester l’absence d’un fichier :

if not exist unFichier uneCommande

         4 – L’utile périphérique nul

    Le périphérique invisible appelé « nul » peut être utilisé de plusieurs manières. (il est parfois appelé « trou noir »). Tout ce qui y est envoyé disparait. Il peut être utilisé dans les instructions quand vous ne voulez pas que leurs sorties soient affichées. Par exemple, la commande

uneCommande > nul
va exécuter « uneCommande » mais toute la sortie de la commande sera envoyée aux oubliettes. Vous souhaitez parfois, dans un fichier batch, qu’aucun message d’erreur éventuel ne s’affiche. Ceci est obtenu en utilisant

uneCommande 2> nul
Nul peut également être appliqué à une commande qui fonctionne normalement sur les fichiers pour lui faire utiliser un répertoire à la place. Par exemple, il est parfois utile de tester si un répertoire existe. L’instruction

if exist unFichier uneCommande
va vérifier l’existence d’un fichier mais ne fonctionnera pas pour un répertoire. Heureusement, tous les répertoires contiennent le périphérique « nul », ainsi, vous pouvez utiliser le code suivant pour tester si un répertoire existe déjà :

if exist unRepertoirenul

         5 – Arrêter une commande en cours d’exécution

    Parfois, vous démarrez une commande et vous vous apercevez qu’elle vous renvoie de grandes quantités d’information sur l’écran. La plupart du temps, vous pouvez terminer la commande en pressant simultanément les touches « Ctrl » et « C ».

         6 – Mettre en pause le défilement de l’écran

         7 – Utiliser le glisser-déplacer

    Le fait de devoir taper le chemin complet vers un fichier est une source d’erreur. La plupart des gens ne savent pas qu’il est possible de faire glisser un fichier à partir de l’explorateur Windows vers la console pour que le chemin complet du fichier apparaisse. Cela permet d’économiser du temps de frappe. (Ne fonctionne pas dans Vista)

         8 – Remonter au répertoire parent

    Les utilisateurs d’Unix connaissent cette syntaxe mais certains utilisateurs de Windows ne la connaissent pas. Pour remonter au répertoire parent du répertoire actuel, entrez

cd ..
Vous pouvez répéter cette commande pour remonter les niveaux jusqu’à la racine du disque. Vous pouvez également entrer deux points « .. » dans la fenêtre Démarrer->Exécuter cela ouvrira le répertoire parent du répertoire de travail par défaut (il s’agit en général de %USERPROFILE%).

         9 – Comment changer le répertoire de travail courant vers un répertoire d’un autre disque

    Si vous voulez changer le répertoire de travail d’une fenêtre d’invite de commande vers un dossier situé sur un autre disque, la commande « cd » ne fonctionnera pas. Vous devez d’abord entrer la lettre du lecteur suivie de deux-points ( puis utiliser la commande « cd » suivie du chemin. Cependant, vous pouvez utiliser le commutateur /d pour changer le répertoire courant :

cd /d E:test
Vous pouvez également effectuer le changement avec une seule commande si vous utilisez « pushd » à la place de « cd » :

pushd E:test

         10 – Attention aux espaces dans les noms des fichiers et des dossiers

    L’invite de commande ne reconnaît pas les espaces dans les chemins. Tous les chemins comportant des espaces doivent être entourés de guillemets (« ). Ce problème revient souvent dans les scripts lorsque certaines variables d’environnement ou des arguments d’entrée sont utilisés. Par mesure de précaution, les variables qui contiennent des noms de fichiers ou de dossiers doivent être placées entre guillemets.

         11 – Traitement spécial des variables pour l’instruction for dans les fichiers batch

    L’instruction « for » est souvent utile car elle fournit un moyen puissant d’effectuer des itérations. Cette commande a la particularité de nécessiter l’utilisation de doubles signes pourcent pour les itérations dans les fichiers batch. En d’autres termes, la syntaxe dans un fichier batch est :

for %%variable In set Do commande
Si une boucle « for » est exécutée directement depuis l’invite de commande, seul un signe pourcent est utilisé. La syntaxe est alors :

for %variable In set Do commande

         12 – Variables sensibles à la casse dans les instructions for

    Contrairement aux systèmes Unix, Windows n’est généralement pas sensible à la casse, cependant, les variables utilisées dans les instructions « for » sont sensibles à la casse. Donc une variable %A est différente de %a.

         13 – Mettre un raccourci vers une ligne de commande dans le Menu Démarrer

    Si vous utilisez fréquemment l’invite de commandes, vous pouvez créer un raccourci facilement accessible. Ouvrez Démarrer–>Tous les programmes–>Accessoires et faites un clic-droit sur « Invite de commandes ». Choisissez « Ajouter au menu Démarrer » dans le menu contextuel. Vous pouvez aussi aller dans WINDOWSsystem32 et effectuer un clic droit sur le fichier de l’interpréteur de commande cmd.exe et choisissez « Ajouter au menu Démarrer » dans le menu contextuel.

         14 – Créer un raccourci vers une commande

    Si vous utilisez fréquemment une commande, vous pouvez créer un raccourci vers celle-ci. L’astuce est d’utiliser le commutateur /k pour que l’invite de commande reste ouverte. La commande pour le raccourci est :

cmd /k uneCommande.exe

         15 – Ouvrir l’explorateur Windows à partir de la ligne de commande

    Pour ouvrir l’explorateur Windows sur le répertoire courant de l’invite de commande, utilisez la commande

start .
Pour ouvrir le répertoire parent, utilisez la commande

start ..

         16 – Utilisation de la commande Start

    L’astuce précédente est un exemple d’utilisation de la commande « start » utilisée pour appeler une action, un dossier système ou une URL. Par exemple, vous pouvez taper « cookies » dans « Démarrer->Exécuter » pour ouvrir le répertoire système contenant les cookies (fonctionne dans Windows XP mais pas dans Vista). Toutefois, dans l’invite de commande, vous devez entrer

start cookies
Dans Vista, la commande doit être modifiée avec la commande Shell et sera donc :

start shell:cookies
De même, vous pouvez ouvrir un programme tel que Microsoft Word avec la commande

start winword
Vous pouvez également ouvrir une page Web dans Internet Explorer en utilisant une commande du type

start http://monsite.com

         17 – tilisez la complétion de nom de fichier et de nom de dossier

    La fonction d’auto-complétion des noms et des chemins vous économisera de la frappe. Cette fonctionnalité utilise la touche Tab pour compléter automatiquement le nom de fichier que vous avez commencé à taper. Par exemple, tapez « a » (sans guillemets) dans l’invite de commande et tapez sur la touche Tab. Windows va alors compléter votre saisie avec le nom d’un fichier ou d’un dossier existant commençant par « a », en le sélectionnant par ordre alphabétique. Appuyez sur la touche Tab à nouveau pour afficher le nom de fichier ou de dossier suivant (commençant par « a »). De cette façon, vous pouvez boucler sur tous les fichiers et dossiers existant dans le chemin courant qui commence avec un caractère particulier ou un groupe de caractères. La combinaison de touches Shift+Tab permet de parcourir la liste dans l’ordre inverse. La fonction de complétion peut être utilisée à n’importe quel endroit d’une commande.

         18 – Activer le mode d’édition rapide pour la fenêtre de commande

    Il est pratique d’effectuer du copier-coller à partir de la fenêtre d’invite, mais cette fonctionnalité n’est pas activée par défaut. J’utilise cette fonction fréquemment et je vous suggère de l’activer pour toutes vos fenêtres d’invite de commande. Vous trouverez plus de détail sur l’activation de l’édition rapide sur une autre page. Une fois que l’édition rapide est activée, le contenu du presse-papier peut être collé dans l’invite de commande en effectuant un clic-droit sur la fenêtre de commande.

         19 – Afficher l’historique des commandes

    Le réglage par défaut de la configuration de la fenêtre de commande inclut la possibilité de mémoriser jusqu’à 50 commandes tapées. L’historique des commandes peut être affiché en appuyant sur la touche « F7 ».

         20 – Utiliser la commande sleep dans les fichiers batch sous Windows XP.

    Parfois, il est pratique d’attendre un certain temps dans un fichier batch entre deux commandes. Si vous téléchargez les outils gratuits Windows Server 2003 (décrits sur une autre page), vous trouverez l’outil sleep.exe qui fournit un moyen d’attendre un certain temps dans un fichier batch. Pour un intervalle de n secondes, la commande est :

sleep n

         21 – Copier du texte à partir de la fenêtre de commande

    A l’époque de DOS, il n’était pas rare d’entrer du texte directement de l’invite de commande dans un fichier avec la commande « copy ». C’est moins utilisé dans Windows mais il est toujours possible de le faire. La sortie de la fenêtre de commande ou de la console est appelée CON pour « CONsole » et n’est pas sensible à la casse. Pour copier du texte depuis l’invite de commande vers un fichier « untexte.txt », la séquence d’instruction sera :

copy con untexte.txt
Première ligne du fichier souhaité
encore un peu de texte…
^Z
La dernière ligne indique la combinaison de touches « Ctrl+Z » suivie de la touche Entrée. Cette commande termine la séquence et envoie le texte au fichier qui sera automatiquement créé. Dans cet exemple particulier, le fichier est placé dans le répertoire courant mais d’autres emplacements peuvent être utilisés.

         22 – Astuces pour la console de commande de Vista

    Windows XP et Vista ont la plupart de leurs lignes de commande en commun. Toutefois, il existe certaines différences. Les astuces spécifiques à Windows Vista sont données au chapitre suivant.