I have a bat script which at one point redirects the stderr of a process to the stdout, and then writes it to a file. I used to do it like this:
process.exe 2>&1 > file.txt
However, this doesn't redirect the stderr to the file ( for reasons I can't understand ). When I modified the line to :
process.exe > file.txt 2>&1
The whole thing worked. Aren't these two equivalent?
The first example essentially does:
stderr = stdout; stdout = "file.txt";
stderr is still pointing at the original
stdout. Your second example does:
stdout = "file.txt"; stderr = stdout;
stdout now reference
file.txt. It's annoyingly subtle.