找了一些代码, 可行但并不能满足需要, 改了之后效果不错, 特此记之。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
namespace ConsoleApplication13
{
class Program
{
static void Main(string[] args)
{
string path = @"d:\test.bat";
string errMsg = string.Empty;
string output = ExecBat(path, ref errMsg);
Console.WriteLine("Output: {0}\r\nErrorMsg:\r\n{1}", output, errMsg);
Console.Read();
}
public static string ExecBat(string batPath, ref string errMsg)
{
string outPutString = string.Empty;
using (Process pro = new Process())
{
FileInfo file = new FileInfo(batPath);
pro.StartInfo.WorkingDirectory = file.Directory.FullName;
pro.StartInfo.FileName = batPath;
pro.StartInfo.CreateNoWindow = false;
pro.StartInfo.RedirectStandardOutput = true;
pro.StartInfo.RedirectStandardError = true;
pro.StartInfo.UseShellExecute = false;
pro.Start();
pro.WaitForExit();
outPutString= pro.StandardOutput.ReadToEnd();
errMsg = pro.StandardError.ReadToEnd();
}
return outPutString;
}
}
}