我想从c#运行一个shell命令并使用我程序中的返回信息.所以我已经知道要从终端运行一些东西我需要做类似的事情
string strCmdText;
strCmdText= "p4.exe jobs -e";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);
Run Code Online (Sandbox Code Playgroud)
所以现在命令执行了,从这个命令返回一些信息...我的问题是如何在我的程序中使用这些信息,可能与命令行参数有关,但不确定...
我知道使用python这样的脚本语言更容易,但是真的需要使用c#
P.B*_*key 38
您可以使用ProcessStartInfo重定向输出.有关MSDN和SO的例子.
例如
Process proc = new Process {
StartInfo = new ProcessStartInfo {
FileName = "program.exe",
Arguments = "command line arguments to your executable",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
Run Code Online (Sandbox Code Playgroud)
然后开始这个过程并从中读取:
proc.Start();
while (!proc.StandardOutput.EndOfStream) {
string line = proc.StandardOutput.ReadLine();
// do something with line
}
Run Code Online (Sandbox Code Playgroud)
根据您要完成的任务,您可以实现更多目标.我编写的应用程序异步地将数据传递到命令行并从中读取数据.这样的例子不容易在论坛上发布.