Redirect Windows cmd stdout and stderr to a single file

ripper234 picture ripper234 · Sep 14, 2009 · Viewed 487.2k times · Source

I'm trying to redirect all output (stdout + stderr) of a DOS command to a single file:

C:\>dir 1> a.txt 2> a.txt
The process cannot access the file because it is being used by another process.

Is it possible, or should I just redirect to two separate files?

Answer

Anders Lindahl picture Anders Lindahl · Sep 14, 2009

You want:

dir > a.txt 2>&1

The syntax 2>&1 will redirect 2 (stderr) to 1 (stdout). You can also hide messages by redirecting to NUL, more explanation and examples on MSDN.