【问题标题】:Redirect output to console将输出重定向到控制台
【发布时间】:2013-11-14 16:57:42
【问题描述】:

相当简单的问题,但我似乎找不到答案。

什么 C# 相当于在 Windows 批处理脚本中执行 echo "foo" > CON

请注意,我必须特别地 输出到控制台流 (CON)。我找到了很多解决如何在调用Process.Start() 时重定向它的答案,但是我的进程已启动并且STDOUT 被重定向到我无法控制的范围之外。

【问题讨论】:

  • msdn.microsoft.com/en-us/library/windows/desktop/… 可能会有所帮助,Console.SetOut() 和一些 P/Invoke。
  • 我很惊讶,我很难找到答案。它在 shell 脚本中微不足道,所以感觉它应该在更强大的语言中几乎一样简单...... AP/Invoke 可能可以做到,但这感觉就像试图在一个大锤上使用小指甲。

标签: c# console io-redirection


【解决方案1】:

您可以尝试使用Console.OpenStandardOutput 打开标准输出流,将其包装在 TextWriter 中,然后使用 Console.SetOut 重置它。

【讨论】:

  • 不就是得到现有的STDOUT吗?
  • @Bobson 文档说它允许重新获取标准输出流。我不确定这是否允许您“撤消”在您的应用程序之外发生的重定向。该标准输出重定向可能完全不受您的控制(至少没有 P/Invoking 某些 Win32 函数,但我对此不是很熟悉)。
  • 刚试过。没有得到任何输出。不过,感谢您试一试。
【解决方案2】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多