蝙蝠将stderr重定向到stdout有奇怪的行为

Geo*_*Geo 5 redirect stdout batch-file stderr

我有一个bat脚本,它一次将进程的stderr重定向到stdout,然后将其写入文件.我过去常常这样做:

process.exe 2>&1 > file.txt
Run Code Online (Sandbox Code Playgroud)

但是,这不会将stderr重定向到文件(出于我无法理解的原因).当我将线修改为:

process.exe > file.txt 2>&1 
Run Code Online (Sandbox Code Playgroud)

整件事情奏效了.这两个不等同吗?

dev*_*ity 8

第一个例子基本上是:

stderr = stdout;
stdout = "file.txt";
Run Code Online (Sandbox Code Playgroud)

所以,stderr仍然指着原来的stdout.你的第二个例子是:

stdout = "file.txt";
stderr = stdout;
Run Code Online (Sandbox Code Playgroud)

所以,无论是stderrstdout现在引用file.txt.这令人讨厌地微妙.