Ich versuche, alle Ausgaben (stdout + stderr) eines DOS-Befehls in eine einzige Datei umzuleiten:
C:\>dir 1> a.txt 2> a.txt
The process cannot access the file because it is being used by another process.
Ist das möglich, oder sollte ich einfach in zwei separate Dateien umleiten?
Sie wollen:
dir > a.txt 2>&1
Die Syntax 2>&1
wird 2
(stderr) nach 1
(stdout) umleiten. Sie können Nachrichten auch ausblenden, indem Sie auf NUL
umleiten, weitere Erklärung und Beispiele auf MSDN.
Anders Lindahl's Antwort ist richtig, aber es sollte beachtet werden, dass, wenn Sie stdout in eine Datei umleiten und auch stderr umleiten wollen, Sie sicherstellen MÜSSEN, dass 2>&1
NACH der 1>
-Umleitung angegeben wird, sonst wird es nicht funktionieren.
REM *** WARNING: THIS WILL NOT REDIRECT STDERR TO STDOUT ****
dir 2>&1 > a.txt
Ich habe die Antwort gerade herausgeschnitten, da @Anders sie gerade gepostet hat, aber...
In meiner Windows-Hilfe habe ich nach Umleitung gesucht (URL ms-its:C:\WINDOWS\Help\ntcmds.chm::/redirection.htm).
Vielleicht möchten Sie auch etwas über >> und | (pipe) lesen.