我正在使用以下命令将DOS标准输出和stderr传递给我的日志文件:
run.exe 1> mylog.log 2>&1
我的同事坚持使用:
run.exe > mylog.log 2>1
哪个是对的?
这是在Windows 7上。
答案 0 :(得分:2)
你的是正确的,你的同事是部分正确的。
Windows shell redirection operators与Unix shell基本相同。 >
(重定向输出)运算符的默认文件句柄是1
,stdout,因此不需要像在示例中那样指定它,尽管它没有受到伤害。如果要告诉shell将一个文件句柄的输出附加到另一个(例如,将stderr连接到与stdout相同的句柄),则需要使用>&
。
此处的同事示例将正确地将stdout重定向到mylog.log
,但stderr将进入名为1
的文件。