【问题标题】:DOS stdout stderror pipes syntaxDOS 标准输出 stderror 管道语法
【发布时间】:2013-08-14 03:37:09
【问题描述】:

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

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

我的同事坚持使用:

run.exe  > mylog.log 2>1

哪个是正确的?


这是在 Windows 7 上。

【问题讨论】:

  • 你是在 Windows 上运行这个吗?
  • 1> mylog 中的 1 也不是必需的。你的同事没去野餐就吃三明治了。 :)

标签: pipe dos stdout command-prompt stderr


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2021-07-10
    • 1970-01-01
    相关资源
    最近更新 更多