首页 文章

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

提问于
浏览
0

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

dir > out.txt 1>&2

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

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

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

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

1 回答

  • 0

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

    dir > out.txt 1>&2
    

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

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

相关问题