Exporter (0) Imprimer
Développer tout

Utilisation des opérateurs de redirection de commande

Mis à jour: janvier 2005

S'applique à: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

Utilisation des opérateurs de redirection des commandes

Les opérateurs de redirection permettent de rediriger les données d'entrée et de sortie des commandes, à partir d'emplacements par défaut vers d'autres emplacements. L'emplacement des flux entrants ou sortants est appelé handle.

Le tableau suivant indique les handles disponibles.

 

Handle Équivalent numérique du handle Description

STDIN

0

Entrée clavier

STDOUT

1

Sortie vers la fenêtre d'invite de commandes

STDERR

2

Sortie des erreurs sur la fenêtre d'invite de commandes

UNDEFINED

3-9

Les handles sont définis individuellement par l'application et sont propres à chaque outil.

Les numéros de zéro à neuf désignent les 10 premiers handles. Vous pouvez utiliser l'exécutable Cmd.exe pour lancer un programme et rediriger l'un de ces 10 premiers handles définis pour ce programme. Pour spécifier le handle que vous voulez utiliser, tapez son numéro avant l'opérateur de redirection. Si vous ne définissez aucun handle, l'opérateur de redirection < par défaut en entrée est zéro (0) et l'opérateur de redirection < par défaut en sortie est un (1). Après avoir tapé l'opérateur < ou >, vous devez spécifier l'emplacement à partir duquel vous voulez lire ou écrire les données. Vous pouvez spécifier un nom de fichier ou un autre handle existant.

Pour demander la redirection vers des handles existants, utilisez le et commercial (&) suivi du numéro du handle vers lequel effectuer la redirection (par exemple, &handle#). Dans l'exemple suivant, la commande permet de rediriger le handle 2 (STDERR) vers le handle 1 (STDOUT) :

2>&1

Le tableau suivant contient la liste des opérateurs que vous pouvez utiliser pour rediriger les données d'entrée et de sortie.

 

Opérateur de redirection Description

>

Permet d'écrire la sortie d'une commande dans un fichier ou vers un périphérique, tel qu'une imprimante, plutôt que dans la fenêtre de l'invite de commandes ou dans un handle.

<

Permet de lire l'entrée d'une commande à partir d'un fichier plutôt qu'à partir du clavier ou d'un handle.

>>

Permet d'ajouter les données qui résultent d'une commande à la fin d'un fichier sans supprimer les données qui s'y trouvent déjà.

>&

Permet de remplacer les données d'entrée d'un handle par les données de sortie d'un autre handle.

<&

Permet de lire les données d'entrée dans un handle et de les écrire en tant que données de sortie dans un autre handle.

|

Permet de lire les données obtenues en sortie d'une commande et de les écrire en tant que données d'entrée dans une autre commande. Ce symbole est appelé une barre verticale.

Par défaut, les données d'entrée d'une commande (handle STDIN) sont transmises via le clavier au programme Cmd.exe, lequel affiche le résultat de la commande (handle STDOUT) à la fenêtre d'invite de commandes.

Redirection des entrées (<)

Pour rediriger une entrée à partir du clavier vers un fichier ou un périphérique, utilisez l'opérateur <. Par exemple, pour récupérer l'entrée de la commande sort à partir du fichier Fichier.txt, tapez :

sort<fichier.txt

Le contenu du fichier Fichier.txt s'affiche dans la fenêtre d'invite de commandes sous forme de liste classée par ordre alphabétique.

L'opérateur < permet d'ouvrir le fichier spécifié avec un accès en lecture seule. Par conséquent, si vous utilisez cet opérateur, vous ne pouvez pas modifier le fichier. Par exemple, si vous lancez un programme avec <&2, tous les essais de lecture du handle 0 échouent car le handle 2 a été à l'origine ouvert avec un accès en écriture seule.

Remarques

  • Le numéro zéro est le numéro du handle par défaut utilisé avec l'opérateur de redirection < en entrée.

Redirection des sorties (>)

Pratiquement toutes les commandes affichent en sortie des données sur la fenêtre d'invite de commandes. Même les commandes qui transfèrent ces données vers un lecteur de disque ou vers une imprimante affichent également des messages et des invites sur la fenêtre d'invite de commandes.

Pour rediriger la sortie à partir de la fenêtre d'invite de commandes vers un fichier ou un périphérique, utilisez l'opérateur >. Vous pouvez utiliser cet opérateur avec la plupart des commandes. Par exemple, pour rediriger les résultats de la commande dir vers le fichier ListRép.txt, tapez :

dir>listrép.txt

Si le fichier ListRép.txt n'existe pas, le programme Cmd.exe le crée. Si ce fichier existe, le programme remplace les données que ce fichier contient déjà par les données résultant de la commande dir.

Pour exécuter la commande netsh routing dump et envoyer le résultat vers le fichier Route.cfg, tapez :

netsh routing dump>c:\route.cfg

L'opérateur > permet d'ouvrir le fichier spécifié avec un accès en écriture seule. Par conséquent, si vous utilisez cet opérateur, vous ne pouvez pas lire le fichier. Par exemple, si vous démarrez un programme avec les opérateurs de redirection >&0, toutes les tentatives d'écriture dans le handle 1 échouent, car le handle 0 a été ouvert à l'origine avec un accès en lecture seule.

Remarques

  • Le numéro un est le numéro du handle utilisé par défaut avec l'opérateur de redirection > des données en sortie.

Duplication des handles

L'opérateur de redirection & permet de dupliquer les sorties ou les entrées depuis un handle vers un autre. Par exemple, pour écrire le résultat de la commande dir dans le fichier Fichier.txt et écrire les erreurs dans le fichier Fichier.txt, tapez :

dir>c:\fichier.txt 2>&1

Lorsque vous dupliquez un handle, vous dupliquez toutes les caractéristiques du handle d'origine. Par exemple, si un handle est caractérisé par des accès en écriture seule, tous les handles dupliqués à partir de ce handle disposent également d'un accès en écriture seule. Il est impossible de dupliquer un handle disposant d'un accès en lecture seule dans un handle disposant d'un accès en écriture seule.

Utilisation de l'opérateur & pour rediriger les données en entrée et les dupliquer

Pour utiliser l'opérateur de redirection des données en entrée (<) avec l'opérateur de duplication (&), le fichier que vous spécifiez doit déjà exister. Si le fichier d'entrée existe, le programme Cmd.exe l'ouvre en lecture seule et transmet les caractères qu'il contient à la commande qui les utilise en tant que données d'entrée, comme s'ils avaient été saisis à partir du clavier. Si vous indiquez un handle, le programme Cmd.exe le duplique dans le handle existant dans le système.

Par exemple, pour ouvrir le fichier Fichier.txt en tant que source à partir de laquelle lire les entrées et les transmettre au handle 0 (STDIN), tapez :

< fichier.txt

Pour ouvrir Fichier.txt, trier le contenu et afficher le résultat dans la fenêtre d'invite de commandes (STDOUT), tapez :

sort< fichier.txt

Pour rechercher le Fichier.txt, puis rediriger le handle 1 (STDOUT) et le handle 2 (STDERR) vers le fichier Recherche.txt, tapez :

findfile fichier.txt>recherche.txt 2<&1

Pour dupliquer le handle 3, défini par un utilisateur, en tant que source de lecture des entrées vers le handle 0 (STDIN), tapez :

<&3

Utilisation de l'opérateur & pour rediriger les données en sortie et les dupliquer

Si vous redirigez les données en sortie vers un fichier et que vous spécifiez un fichier existant, le programme Cmd.exe ouvre ce fichier en écriture seule et remplace le contenu existant. Si vous indiquez un handle, le programme Cmd.exe duplique le fichier dans le handle existant.

Pour dupliquer le handle 3 défini par l'utilisateur dans le handle 1, tapez :

>&3

Pour rediriger toutes les données en sortie, y compris le handle 2 (STDERR), à l'aide de la commande ipconfig vers le handle 1 (STDOUT), puis les rediriger vers le fichier Sortie.log, tapez :

ipconfig.exe>>sortie.log 2>&1

Utilisation de l'opérateur de redirection >> pour ajouter des données

Pour ajouter les données obtenues en sortie d'une commande à la fin d'un fichier sans perdre les données qui s'y trouvent déjà, utilisez un double signe supérieur à (>>). Dans l'exemple suivant, la liste de répertoires obtenue par la commande dir est ajoutée dans le fichier ListRép.txt :

dir>>listrép.txt

Pour ajouter les données obtenues par la commande netstat à la fin du fichier Tcpinfo.txt, tapez :

netstat>>tcpinfo.txt

Utilisation de la barre verticale (|)

L'opérateur (|) permet de récupérer les données obtenues en sortie (par défaut, STDOUT) d'une commande et de les rediriger en entrée (par défaut STDIN) d'une autre commande. La commande suivante permet par exemple, de trier le contenu d'un répertoire :

dir | sort

Dans cet exemple, les deux commandes sont tout d'abord exécutées simultanément, puis, la commande sort s'interrompt jusqu'à réception des données obtenues en sortie de la commande dir. La commande sort utilise en entrée les données obtenues par la commande dir et transmet ses résultats au handle 1 (STDOUT).

Combinaison de commandes et d'opérateurs de redirection

Vous pouvez créer des commandes personnalisées en combinant des commandes de filtre avec d'autres commandes et d'autres fichiers. Pour stocker les noms de fichiers qui contiennent la chaîne « LOG », utilisez par exemple, la commande suivante :

dir /b | find "log" listlog.txt

Les résultats de la commande dir sont dirigés via la commande de filtre find. Les noms de fichier qui contiennent la chaîne « LOG » sont stockés sous forme de liste (par exemple, NetshConfig.log, Logdat.svd et Monlog.bat) dans le fichier ListLog.txt.

Pour utiliser plusieurs filtres dans la même commande, séparez les filtres par le signe |. La commande suivante, par exemple, permet d'effectuer une recherche dans chaque répertoire du lecteur C, de trouver les noms de fichier contenant la chaîne « LOG » et de les afficher à raison d'un écran à la fois.

dir c:\ /s /b | find "log" | more

En utilisant le signe |, Cmd.exe transmet les résultats de la commande dir via la commande de filtre find. La commande find permet de sélectionner uniquement les noms de fichier contenant la chaîne « LOG ». La commande more affiche ensuite, écran par écran, les noms des fichiers sélectionnés par la commande find. Pour plus d'informations sur les commandes de filtre, voir Utilisation de filtres.

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

Afficher:
© 2014 Microsoft