В CMD попробуйте
batchWithPause.bat < nul
В C # это будет примерно так:
Process.Start("batchWithPause.bat", "< nul");
РЕДАКТИРОВАТЬ Так что вы просто хотите, чтобы пользователь увидел "Нажмите любую клавишу для продолжения"?Затем добавьте
@echo "Press any key to continue..."
перед каждым pause
вызовом.Вы также можете:
- написать свой собственный pause.bat, который по сути делает это
написать простой pause.exe, скажем, на c #:
publicstatic void Pause () {Console.WriteLine («Нажмите ввод, чтобы продолжить.»);Console.Read ();}
РЕДАКТИРОВАТЬ 2 Теперь я понимаю вашу проблему.И асинхронный OutputDataReceived, и StreamReader.ReadLine () будут читать паузу «Нажмите любую клавишу для продолжения» только после того, как пользователь нажал клавишу.Однако, если бы вы зациклились на StreamReader.Read () самостоятельно, вы также получите «Нажмите любую клавишу для продолжения».Так что, похоже, это ваш единственный возможный маршрут.