Informations générales de MSKB
Bien que la réponse acceptée à cette question soit correcte, elle n'explique pas grand chose. pourquoi cela fonctionne, et comme la syntaxe n'est pas immédiatement claire, j'ai fait une rapide recherche sur Google pour savoir ce qui se passait réellement. Dans l'espoir que cette information soit utile à d'autres, je la publie ici.
Tiré de Support MS KB 110930 .
De MSKB110930
Redirection des messages d'erreur à partir de l'invite de commande : STDERR/STDOUT
Résumé
Lorsque vous redirigez la sortie d'une application à l'aide du symbole '>', les messages d'erreur s'affichent toujours à l'écran. Cela s'explique par le fait que les messages d'erreur sont souvent envoyés dans le flux Standard Error au lieu du flux Standard Out.
La sortie d'une application ou d'une commande de console (Invite de commande) est souvent envoyée vers deux flux distincts. La sortie normale est envoyée à Standard Out (STDOUT) et les messages d'erreur sont envoyés à Standard Error (STDERR). Lorsque vous redirigez la sortie de la console à l'aide du symbole ">", vous ne redirigez que STDOUT. Afin de rediriger STDERR, vous devez spécifier '2>' pour le symbole de redirection. Ceci sélectionne le deuxième flux de sortie, à savoir STDERR.
Exemple
La commande dir file.xxx
(où file.xxx
n'existe pas) affichera la sortie suivante :
Volume in drive F is Candy Cane Volume Serial Number is 34EC-0876
File Not Found
Si vous redirigez la sortie vers le NUL
dispositif utilisant dir file.xxx > nul
vous verrez toujours la partie message d'erreur de la sortie, comme ceci :
File Not Found
Pour rediriger (uniquement) le message d'erreur vers NUL
utilisez la commande suivante :
dir file.xxx 2> nul
Ou bien, vous pouvez rediriger la sortie vers un endroit, et les erreurs vers un autre.
dir file.xxx > output.msg 2> output.err
Vous pouvez imprimer les erreurs et la sortie standard dans un seul fichier en utilisant la commande "&1" pour rediriger la sortie de STDERR vers STDOUT et ensuite envoyer la sortie de STDOUT vers un fichier :
dir file.xxx 1> output.msg 2>&1
18 votes
TechNet : Utilisation des opérateurs de redirection des commandes (répond à cette question mieux que toutes les réponses données ici).
1 votes
2>&1 car il ne peut pas rouvrir le même fichier.