1

我正在使用以下命令将 DOS 标准输出和标准错误传送到我的日志文件:

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

我的同事坚持使用:

run.exe  > mylog.log 2>1

哪个是对的?


这是在 Windows 7 上。

4

1 回答 1

2

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

Windows shell 重定向操作符本质上与 Unix shell 相同。>(重定向输出)运算符的默认文件句柄是1标准输出,因此无需像您的示例中那样指定它,尽管它不会造成伤害。如果您想告诉 shell 将一个文件句柄的输出附加到另一个文件句柄(例如,将 stderr 连接到与 stdout 相同的句柄),您需要使用>&.

您同事的示例将正确地将 stdout 重定向到mylog.log,但 stderr 将进入一个名为1.

于 2013-08-14T03:44:22.090 回答