C#运行批处理或者bat文件并且得到输出
protected
static
void
RunCmd(String cmd, Boolean showWindow, Boolean waitForExit)
{
WriteLine(
"RunCmd "
+ cmd);
var p =
new
Process();
var si =
new
ProcessStartInfo();
var path = Environment.SystemDirectory;
path = Path.Combine(path,
@"cmd.exe"
);
si.FileName = path;
if
(!cmd.StartsWith(
@"/"
)) cmd =
@"/c "
+ cmd;
si.Arguments = cmd;
si.UseShellExecute =
false
;
si.CreateNoWindow = !showWindow;
si.RedirectStandardOutput =
true
;
si.RedirectStandardError =
true
;
p.StartInfo = si;
p.Start();
if
(waitForExit)
{
p.WaitForExit();
var str = p.StandardOutput.ReadToEnd();
if
(!String.IsNullOrEmpty(str)) WriteLine(str.Trim(
new
Char[] {
'\r'
,
'\n'
,
'\t'
}).Trim());
str = p.StandardError.ReadToEnd();
if
(!String.IsNullOrEmpty(str)) WriteLine(str.Trim(
new
Char[] {
'\r'
,
'\n'
,
'\t'
}).Trim());
}
}