Вам нужно использовать Console.Read()
и Console.ReadLine()
, как если бы вы читали пользовательский ввод. Трубы прозрачно заменяют пользовательский ввод. Вы не можете использовать оба легко (хотя я уверен, что это вполне возможно ...).
Edit:
Простая программа в стиле cat
:
class Program
{
static void Main(string[] args)
{
string s;
while ((s = Console.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
А при запуске, как и ожидалось, вывод:
C:\...\ConsoleApplication1\bin\Debug>echo "Foo bar baz" | ConsoleApplication1.exe
"Foo bar baz"
C:\...\ConsoleApplication1\bin\Debug>