为什么c#控制台应用程序没有';不支持重定向到文件?

为什么c#控制台应用程序没有';不支持重定向到文件?,c#,console,C#,Console,我创建了一个经典的控制台应用程序 static void Main(string[] args) { 除非我试图将输出重定向到文件,否则它是有效的 myconsoleapp.exe arg1 arg2 arg3 > output.txt C#console是否支持重定向?如果生成以下类: class Program { static void Main(string[] args) { Console.WriteLine("Hel

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

    static void Main(string[] args)
    {
除非我试图将输出重定向到文件,否则它是有效的

    myconsoleapp.exe arg1 arg2 arg3 > output.txt

C#console是否支持重定向?

如果生成以下类:

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

app.exe test > test.txt
您将获得包含内容的test.txt文件

Hello World! - test

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

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

可能您的消息正在发送到STDERR,而不是STDOUT。在这种情况下,您需要以不同的方式重定向。根据Microsoft的指导():

您可以打印错误和标准 通过使用 重定向输出的“&1”命令 用于将STDERR发送到STDOUT,然后发送 从标准输出到文件的输出:

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

或者,您可以将输出重定向到一个 将错误转移到另一个位置

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


什么不起作用?请给我们看完整的代码。你在写什么?你想怎么写?Console.WriteLine只需转到标准输出,重定向就会起作用。-1表示“它不起作用”,没有详细信息。