1

我正在尝试将脚本的输出通过管道传输到文本文件。

这有效:

MyScript > c:\output.txt

这样做的问题是文本文件的输出中不包含错误(在屏幕上它们是)。

何时执行此操作:

MyScript 2>&1 c:\output.txt

没有创建文件(但我仍然在屏幕上看到所有内容)。

我正在使用 Powershell 3.0。我究竟做错了什么?

4

1 回答 1

2

我相信您正在寻找的是:

MyScript > c:\output.txt 2>&1

"> c:\output.txt" 将 STDOUT 重定向到文件

2>&1 将 STDERR 重定向到 STDOUT

当您已经完成 STDOUT 重定向时,结果是将 STDOUT 和 STDERR 都重定向到 c:\output.txt

仅使用 "2>&1 c:\output.txt" 您将 stderr 重定向到 stdout,但让 stdout 仍输出到控制台,并且仅将 c:\output.txt 作为未使用的参数提供给脚本。

于 2013-07-25T21:34:41.763 回答