C#执行DOS命令,返回DOS命令的输出

 /// <summary> 
/// 执行DOS命令,返回DOS命令的输出 
/// </summary> 
/// <param name="dosCommand">dos命令</param> 
/// <param name="milliseconds">等待命令执行的时间(单位:毫秒), 
/// 如果设定为0,则无限等待</param> 
/// <returns>返回DOS命令的输出</returns> 
public static string Execute(string command, int seconds)
{
	string output = ""; //输出字符串 
	if (command != null && !command.Equals(""))
	{
		Process process = new Process();//创建进程对象 
		ProcessStartInfo startInfo = new ProcessStartInfo();
		startInfo.FileName = "cmd.exe";//设定需要执行的命令 
		startInfo.Arguments = "/C " + command;//“/C”表示执行完命令后马上退出 
		startInfo.UseShellExecute = false;//不使用系统外壳程序启动
		startInfo.RedirectStandardInput = false;//不重定向输入 
		startInfo.RedirectStandardOutput = true; //重定向输出 
		startInfo.CreateNoWindow = true;//不创建窗口 
		process.StartInfo = startInfo;
		try
		{
			if (process.Start())//开始进程 
			{
				if (seconds == 0)
				{
					process.WaitForExit();//这里无限等待进程结束 
				}
				else
				{
					process.WaitForExit(seconds); //等待进程结束,等待时间为指定的毫秒 
				}
				output = process.StandardOutput.ReadToEnd();//读取进程的输出 
			}
		}
		catch (Exception ex)
		{
			Console.WriteLine(ex.Message);//捕获异常,输出异常信息
		}
		finally
		{
			if (process != null)
				process.Close();
		}
	}
	return output;
}
本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注