我有一个基本的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
。我究竟做错了什么?
答案 0 :(得分:0)
其他命令的管道输出不会作为命令行参数(即args[]
中的Main()
)传递给应用程序。而是,您的应用程序需要从标准输入(stdin
)中读取它们。为此,您需要使用Console.Read()
或Console.ReadLine()
。