将数据从命令行传送到C#控制台应用程序

时间:2018-08-18 12:45:06

标签: c# console

我有一个基本的C#控制台应用程序,如下所示:

static void Main(string[] args)
{
  if (args.Length > 0)
  {
    foreach (var arg in args)
    {
      Console.WriteLine("arg: " + arg);
    }
  }
  else
  {
    Console.WriteLine("No args received from standard output.");
  }
}

我的应用最终将接收来自第三方应用的数据,该第三方应用会将数据通过管道传输到此控制台应用。为了测试这种情况,我尝试运行以下命令:

echo "hello world" | MyConsoleApp.exe

当我运行它时,我看到了No args received from standard output.。但是,我期望看到hello world。我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

其他命令的管道输出不会作为命令行参数(即args[]中的Main())传递给应用程序。而是,您的应用程序需要从标准输入(stdin)中读取它们。为此,您需要使用Console.Read()Console.ReadLine()