【问题标题】:Why c# console app doesn't support redirection to file?为什么 c# 控制台应用程序不支持重定向到文件?
【发布时间】:2011-09-17 07:40:12
【问题描述】:

我创建了一个经典的控制台应用

    static void Main(string[] args)
    {

它可以工作,除非我尝试将输出重定向到文件

    myconsoleapp.exe arg1 arg2 arg3 > output.txt

C# 控制台是否支持重定向?

【问题讨论】:

  • 什么不起作用?
  • 请给我们看完整的代码。你在 stdout 中写了什么?
  • 你写的怎么样? Console.WriteLine 只是去标准输出,重定向就可以了。
  • -1 表示“它不起作用”,没有详细信息。

标签: c# console


【解决方案1】:

如果你构建以下类:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello World! - {0}", args[0]);
    }
}

并执行

app.exe test > test.txt

你会得到包含内容的文件 test.txt

Hello World! - test

如果您的代码执行不同的输出写入,请提供您写入输出的方法。

【讨论】:

    【解决方案2】:

    也许您的消息被发送到 STDERR,而不是 STDOUT。在这种情况下,您需要以不同的方式重定向。来自微软的指导(http://support.microsoft.com/kb/110930):

    您可以打印错误和标准 通过使用输出到单个文件 "&1" 命令重定向输出 对于 STDERR 到 STDOUT 然后发送 从 STDOUT 输出到文件:

    dir file.xxx 1> output.msg 2>&1

    或者,您可以将输出重定向到一个 地方,并将错误转移到另一个地方。

    dir file.xxx > output.msg 2> output.err

    【讨论】:

      【解决方案3】:

      如果没有更多信息,很难找出问题所在。我的一个想法是您可能正在使用 System.Diagnostics.Debug.WriteLine 写入调试控制台。在这种情况下,您将无法以相同的方式重定向输出,至少在没有更多工作的情况下不会。

      【讨论】:

        猜你喜欢
        • 2014-03-26
        • 1970-01-01
        • 2015-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-16
        • 1970-01-01
        • 2017-05-17
        相关资源
        最近更新 更多