您的位置:首页 > 编程语言 > C#

C#如何调用cmd程序的执行

2009-09-07 17:01 507 查看
以下程序可以用来在C# 中调用已写好的bat,并执行之, 此处假设test.bat 中内容

为:

@echo off

echo we got those parameter %0, %1

如下程序则会调用test.bat,并传入参数"first", 然后以timeout=45进行传入。

看代码:using


System;

using



System.Collections.Generic;

using



System.Linq;

using



System.Text;

using



System.Diagnostics;

namespace



ConsoleApplication10
{





class Program
{





static void Main(string[] args)
{

ExecuteProcess(

"test.bat","first",45);
}







public static void ExecuteProcess(string filename, string arguments, int timeout)
{





using (Process cmd = new Process())
{





Console.WriteLine("Executing: {0} {1}", filename, arguments);
cmd.StartInfo.UseShellExecute =

false;
cmd.StartInfo.RedirectStandardError =

true;
cmd.StartInfo.RedirectStandardOutput =

true;
cmd.StartInfo.CreateNoWindow =

true;
cmd.StartInfo.FileName = filename;

cmd.StartInfo.Arguments = arguments;

cmd.Start();

cmd.WaitForExit(timeout);





if (!cmd.HasExited)

{
cmd.Kill();





Console.WriteLine(string.Format("ExecuteProcess stdout: {0}", cmd.StandardOutput.ReadToEnd()));




Console.WriteLine(string.Format("ExecuteProcess stderr: {0}", cmd.StandardError.ReadToEnd()));




throw new Exception("ExecuteProcess times out.");
}





if (0 != cmd.ExitCode)
{





Console.WriteLine(string.Format("ExecuteProcess stdout: {0}", cmd.StandardOutput.ReadToEnd()));




Console.WriteLine(string.Format("ExecuteProcess stderr: {0}", cmd.StandardError.ReadToEnd()));




throw new Exception("ExecuteProcess fails.");



}

}

}

}



执行结果为:

Executing: test.bat first

Press any key to continue . . .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: