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