Я использую свою программу через конвейер в cmd и просто использую ping в качестве примера и теста.
Снимок экрана:
1. пропустил первый символ
2. пропущен первый и второй символ

Это происходит при асинхронном режиме. Метод RunScript является асинхронным
while(true)
{
try
{
string _str = null;
if ((_str = Console.In.ReadLine()) != null) { if (_str != "") { RunScript(_str, pathScript); } } else { break; }
}
}
Это работает без асинхронного метода:
while(true)
{
try
{
string _str = null;
if ((_str = Console.In.ReadLine()) != null) { if (_str != "") { Console.WriteLine(_str); } } else { break; }
}
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... ing-string