Détails
Rediriger le stdout et le stderr de Windows cmd vers un seul fichier
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 ?
654
3
Vous voulez :
La syntaxe
2>&1
redirigera2
(stderr) vers1
(stdout). Vous pouvez également masquer les messages en les redirigeant versNUL
, [plus d'explications et d'exemples sur MSDN][1].[1] : https://support.microsoft.com/en-us/help/110930/redirecting-error-messages-from-command-prompt-stderr-stdout
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 redirection1>
, sinon cela ne fonctionnera pas.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