J'essaie de rediriger toutes les sorties (stdout + stderr) d'une commande [DOS][1] vers un seul fichier :
C:\>dir 1> a.txt 2> a.txt
The process cannot access the file because it is being used by another process.
Est-ce possible, ou dois-je simplement rediriger vers deux fichiers distincts ?
Vous voulez :
dir > a.txt 2>&1
La syntaxe 2>&1
redirigera 2
(stderr) vers 1
(stdout). Vous pouvez également masquer les messages en les redirigeant vers NUL
, [plus d'explications et d'exemples sur MSDN][1].
La réponse d'Anders Lindahl est correcte, mais il faut noter que si vous redirigez stdout vers un fichier et que vous voulez également rediriger stderr, vous DEVEZ vous assurer que 2>&1
est spécifié APRÈS la redirection 1>
, sinon cela ne fonctionnera pas.
REM *** WARNING: THIS WILL NOT REDIRECT STDERR TO STDOUT ****
dir 2>&1 > a.txt
Je viens de hacher la réponse comme @Anders vient de la poster, mais...
Depuis mon aide Windows, j'ai fait une recherche sur la redirection (URL [ms-its:C:\WINDOWS\Help\ntcmds.chm::/redirection.htm][1]).
Vous pouvez également vous renseigner sur >> et | (pipe).
[1] : http://ms-its:C:\WINDOWS\Help\ntcmds.chm::/redirection.htm