这个问题已经在这里有一个答案:
- 获得从过程的返回值 2回答
- 阅读从另一个运行的应用程序输出 3个回答
我想从C#运行shell命令,并使用我的程序中返回的信息。 所以,我已经知道,从运行终端,我需要做一些类似的东西
string strCmdText;
strCmdText= "p4.exe jobs -e";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);
所以现在执行的命令,并从这个命令的一些信息返回...我的问题是如何使用我的程序信息,很可能是与命令行参数,但不知道...
我知道,它更容易使用脚本语言如Python做到这一点,但确实需要使用C#
您可以重定向与输出的ProcessStartInfo 。 有一个关于实例MSDN和SO 。
EG
Process proc = new Process {
StartInfo = new ProcessStartInfo {
FileName = "program.exe",
Arguments = "command line arguments to your executable",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
然后启动进程并从中读取:
proc.Start();
while (!proc.StandardOutput.EndOfStream) {
string line = proc.StandardOutput.ReadLine();
// do something with line
}
根据您所要完成的,你可以实现很多的还有很多的东西。 我写的应用程序,asynchrously数据传递到命令行,并读取它。 这样的例子不容易在一个论坛上公布。