如何从标准输入读取并写入标准输出。 System.Diagnostics.Process.StandardInput的MSDN引用没有帮助,因为它单独启动进程,然后重定向标准输入/输出但是如果进程已经运行并调用我的应用程序来为它提供一些数据。这是一个让事情变得清晰的例子:
我只是使用Unix管道,即cygwin中的cat命令(类似Linux的环境中的Linux),基本上只读取标准输入并打印到标准输出。以下是命令:
%cat input / sample.txt | SRC / CSHARP / maptest
但这似乎不起作用。
如果有人知道ruby在这里我不知道我想在C#中做同样的事情:
#!/usr/bin/env ruby
STDIN.each_line
do |line|
some code here
end
这里有一些我希望在c#或vb.net中完成的python等效代码:
#!/usr/bin/env python
import re
import sys
for line in sys.stdin:
val = line.strip()
任何解决方案?
提前致谢。
答案 0 :(得分:9)
您正在寻找Console
课程中的static methods:
System.Console.In
封装标准输入流System.Console.Out
封装标准输出流答案 1 :(得分:1)
指向System.IO.Pipes
的文档的指针是一个红色的鲱鱼。
如果您只是希望能够将流程管道的标准输出管道连接到另一个流程的标准输入,那么只要编写目标流程以从标准输入读取输入,就可以像预期的那样工作。例如我可以做
dir /b /s c:\*.* | findstr exe
查找我的C:驱动器上的所有可执行文件。
因此,您需要做的就是构建maptest
应用程序,使其从标准输入读取,换句话说,它必须通过其他答案中提到的Console.Read*
方法接受输入。有关之前的讨论,请参阅此前一个问题
答案 2 :(得分:0)
您无法使用 Console.ReadLine()
和Console.WriteLine()
?
别介意以上。你试过System.IO.Pipes吗?这是MSDN documentation。