【发布时间】:2015-10-13 09:55:29
【问题描述】:
我在 c# 应用程序中创建了一个进程,并且可以读取该进程的输出和错误。在执行每个命令之前,我已经使用 Flush() 清除了 StandardInput 缓冲区。但它不起作用。
如何清除进程的标准输入?
注意:进程仍在运行,我只是在执行命令而已。就像在 cmd.exe 中执行命令一样。
我的代码在这里 process.StandardInput.Flush(); process.StandardInput.Write(command);
任何帮助都将不胜感激。
【问题讨论】:
-
我不认为你可以。您可以阅读所有内容,但即便如此,您怎么知道在哪里停下来?你确定你的问题不能通过其他方式解决吗?
-
一旦进程停止并且我知道进程结束,我需要在执行命令之前清除输入缓冲区,
-
@spender 修改了问题
-
您的程序的标准输入缓冲区可能已经发送到您正在控制的进程,并且可能在其缓冲区中徘徊。可能无法清除此缓冲区。
-
只要考虑这种情况,在 cmd 提示符下我按下 [tab] 键后跟 cd 命令,它显示一些路径,现在输入缓冲区有这个命令,现在我想清除它.. 就是这样.