1,代码
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
namespace CNKI.TPI.Web.Base
{
public class CmdHelper
{
public static StringBuilder Msg = new StringBuilder();
//public static string Msg = "";
public static string handingFileFlag = "";
public static string ExecutCmd(string cmd, string args,string handingFileFlag)
{
CmdHelper.handingFileFlag = handingFileFlag;
using(Process p = new Process())
{
p.StartInfo.FileName = cmd;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.CreateNoWindow = true;
p.EnableRaisingEvents = true;
p.Start();
p.StandardInput.WriteLine(args);
p.StandardInput.WriteLine("exit");
// p.PriorityClass = ProcessPriorityClass.Normal;
//result.Append(p.StandardError.ReadToEnd());
//result.Append(p.StandardOutput.ReadToEnd());
p.OutputDataReceived += p_OutputDataReceived;
p.ErrorDataReceived += p_ErrorDataReceived;
p.BeginOutputReadLine();
p.BeginErrorReadLine();
p.WaitForExit();
//Msg.Clear();
//Msg = "";
}
return Msg.ToString();
}
static void p_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
Msg.AppendLine(e.Data);
//Msg = e.Data;
}
static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Msg.AppendLine(e.Data);
//Msg = e.Data;
}
}
}
2,示例
var str= CmdHelper.ExecutCmd("cmd.exe", "help", "");
Console.Write(str);