为什么简单的重定向在Windows cmd中不起作用?

时间:2015-09-19 08:20:51

标签: windows redirect command-line cmd

我想输出任何命令,不仅要在控制台上显示,还要在文件中显示。我用过简单的命令,

dir > out.txt 1>&2

现在我在这里假设的是,dir的输出将转到out.txt, 1 stdout 将被重定向到 2 stderr

我的问题是输出显示在控制台中,但没有写入out.txt

现在控制台将显示stdout和stderr,所以我使用stderr在控制台上显示我的输出。

请考虑,他们可能以任何其他方式做同样的事情。但我想知道我的逻辑有什么问题。

1 个答案:

答案 0 :(得分:0)

每个流只有一个目标。在你的代码中

dir > out.txt 1>&2

您要求dir发送到stdout的数据的目标将是一个文件,然后在它之后再次更改stdout流的目标,并将其分配给stderr流中的目标副本

仅使用重定向运算符无法实现。您需要某种tee实用程序。 SO提供了很多答案,为您提供多种语言的解决方案。