DOS stdout stderr管道语法

时间:2013-08-14 03:37:09

标签: pipe dos stdout command-prompt stderr

我正在使用以下命令将DOS标准输出和stderr传递给我的日志文件:

run.exe  1> mylog.log 2>&1

我的同事坚持使用:

run.exe  > mylog.log 2>1

哪个是对的?


这是在Windows 7上。

1 个答案:

答案 0 :(得分:2)

你的是正确的,你的同事是部分正确的。

Windows shell redirection operators与Unix shell基本相同。 >(重定向输出)运算符的默认文件句柄是1,stdout,因此不需要像在示例中那样指定它,尽管它没有受到伤害。如果要告诉shell将一个文件句柄的输出附加到另一个(例如,将stderr连接到与stdout相同的句柄),则需要使用>&

此处的同事示例将正确地将stdout重定向到mylog.log,但stderr将进入名为1的文件。