private string RunCmd(string command)
{
// 实例化一个Process类,启动一个独立进程
Process p = new Process();
// 加入参数 "/c " + 要执行的命令来执行一个dos命令, "/c "代表执行参数指定的命令后关闭cmd.exe /k参数则不关闭cmd.exe
p.StartInfo.FileName = "cmd.exe"; //设定运行程序名
//p.StartInfo.Arguments = "/c " + command; //设定执行参数
p.StartInfo.UseShellExecute = false; //关闭Shell使用
p.StartInfo.RedirectStandardInput = true; //重定向标准输入
p.StartInfo.RedirectStandardOutput = true; //重定向标准输出
p.StartInfo.RedirectStandardError = true; //重定向错误输出
p.StartInfo.CreateNoWindow = true; //设置不显示窗口
try
{
p.Start(); //启动 p.StandardInput.WriteLine(command); //也可以用这种方式输入要执行的命令
p.StandardInput.WriteLine("exit"); //要记得加上Exit要不然下一行命令执行的时候会死机
p.WaitForExit(); //等待控制台程序执行完成
return p.StandardOutput.ReadToEnd(); //从输出流取得命令执行结果
}
catch (System.Exception ex)
{
return ex.Message;
}
finally
{
p.Close();
}}
解决方案 »
- 在ARCGIS ENGINE中如何调用一个C#的最小生成树程序,或者说将其集成
- 菜鸟发问!
- 为自定义控件添加事件
- C#的reportviewer调用子报表rdlc的问题
- c#中几个不明白!大家快来解答!
- 访问internet数据库,在线等
- 水晶报表的问题,请大家一定帮助,我已经郁闷了好几天了。(请版主帮帮忙!!!)
- 考考大家【有奖噢】:对于普通集合类与泛型集合类。集合元素为类、结构、值、可空值、字符串时的效率问题?
- 如何用c#得到“Win32_ProcessStartup”对象?情指教。。。。
- 有没有人用notepd等写过web service并成功调用它
- 请教各位兄弟!!《支持邮件和短信的消息通知引擎的设计与实现》
- 帮忙写个正则,谢谢
这代码一直在用,但不能实时得到ping返回的信息,ping加入-t参数后会不段返回信息的!
ping只是比喻啦,是其它无界面的命令行输出程序TO:nkboy
可是很多程序都是这样调用而实时不停得到输出信息啊,例如MyEntunnel
while (!standReader.EndOfStream)
{
line = standReader.ReadLine();
CommonMethod.WriteEntry("CompilerSpider", "info", line);
}用这个
p.StartInfo = new ProcessStartInfo();
p.StartInfo.FileName = "ping";
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
StreamReader reader = p.StandardOutput;//截取输出流
string input = reader.ReadLine();//每次读取一行
while (!reader.EndOfStream)
...{
input = reader.ReadLine();
}
p.WaitForExit();