XXX. Astuces pour l'utilisation de l'invite de commande Windows▲
Ce chapitre est une traduction de la page http://commandwindows.com/tipsandtricks.htm dont l'auteur original est Victor Laurie.
Ce chapitre va vous présenter quelques trucs et astuces utiles dans l'utilisation de la console de commandes Windows.
Il existe certaines astuces dont les livres sur l'invite de commande ne parlent pas. Ou, s'ils le font, la description est enterrée dans un paragraphe discret. Les utilisateurs expérimentés de la ligne de commande connaissent ces astuces. Cependant, la plupart des utilisateurs lambda ne les connaissent pas et je vais donc donner ici quelques "trucs" utiles pour eux. D'après ce que je sais, les astuces que je vais donner fonctionnent dans Windows XP et Windows Vista (sauf les cas indiqués). Ces astuces peuvent ne pas fonctionner pour des versions antérieures de Windows. Les astuces spécifiques à Vista sont données sur une autre page.
XXX-A. 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.
XXX-B. 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.
XXX-C. 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
XXX-D. 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
unRepertoire\nul
XXX-E. 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".
XXX-F. Mettre en pause le défilement de l'écran▲
Si vous utilisez une commande qui renvoie beaucoup de données en sortie, vous pouvez mettre en pause le défilement afin de pouvoir lire ce qui est écrit à l'écran. Pour cela, utilisez la combinaison de touches "Ctrl+S" Pour continuer le défilement, appuyez à nouveau sur "Ctrl+S".
XXX-G. 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)
XXX-H. 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%).
XXX-I. 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
XXX-J. 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.
XXX-K. 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
%%v
ariable 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
XXX-L. 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.
XXX-M. 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 \WINDOWS\system32 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.
XXX-N. 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
(Vous trouverez plus de détails sur la façon de créer un raccourci sur cette page).
XXX-O. 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
..
XXX-P. 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
XXX-Q. Utilisez 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.
XXX-R. 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.
XXX-S. 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".
XXX-T. 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
XXX-U. 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.
XXX-V. 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.