C#中隐式运行CMD命令行窗口的调用方法及输入命令

下面介绍一种常用的在C#程序中调用CMD.exe程序,并且不显示命令行窗口界面,来完成CMD中各种功能的简单方法。
MS的CMD命令行是一种重要的操作界面,一些在C#中不那么方便完成的功能,在CMD中几个简单的命令或许就可以轻松搞定,如果能在C#中能完成CMD窗口的功能,那一定可以使我们的程序简便不少。
下面介绍一种常用的在C#程序中调用CMD.exe程序,并且不显示命令行窗口界面,来完成CMD中各种功能的简单方法。
如下所示:
System.Diagnosties.Process p=new System.Diagnosties.Process(); 
p.StartInfo.FileName="cmd.exe";//要执行的程序名称 
p.StartInfo.UseShellExecute=false; 
p.StartInfo.RedirectStanderInput=true;//可能接受来自调用程序的输入信息 
p.StartInfo.RedirectStanderOutput=true;//由调用程序获取输出信息 
p.StartInfo.CreateNoWindow=true;//不显示程序窗口 
p.Start();//启动程序 
//向CMD窗口发送输入信息: 
p.StanderInput.WriteLine("shutdown -r t 10"); //10秒后重启(C#中可不好做哦) 
/*若要使用 StandardInput,您必须将 ProcessStartInfo ..::.UseShellExecute 设置为 false,并且将 ProcessStartInfo ..::.RedirectStandardInput 设置为 true。 
否则,写入 StandardInput 流时将引发异常。*/
//获取CMD窗口的输出信息: 
string sOutput = p.StandardOutput.ReadToEnd();有啦以下代码,就可以神不知鬼不觉的操作CMD啦。总之,Process类是一个非常有用的类,它十分方便的利用第三方的程序扩展了C#的功能。 
详细源码如下:
using System; 
using System.Diagnostics; 
namespace Business 
{ 
///  
/// Command 的摘要说明。 
///  
public class Command 
{ 
private Process proc = null; 
///  
/// 构造方法 
///  
public Command() 
{ 
proc = new Process(); 
} 
///  
/// 执行CMD语句 
///  
/// 要执行的CMD命令 
public void RunCmd(string cmd) 
{ 
proc.StartInfo.CreateNoWindow = true; 
proc.StartInfo.FileName = "cmd.exe"; 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardError = true; 
proc.StartInfo.RedirectStandardInput = true; 
proc.StartInfo.RedirectStandardOutput = true; 
proc.Start(); 
proc.StandardInput.WriteLine(cmd); 
proc.Close(); 
} 
///  
/// 打开软件并执行命令 
///  
/// 软件路径加名称(.exe文件) 
/// 要执行的命令 
public void RunProgram(string programName,string cmd) 
{ 
Process proc = new Process(); 
proc.StartInfo.CreateNoWindow = true; 
proc.StartInfo.FileName = programName; 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardError = true; 
proc.StartInfo.RedirectStandardInput = true; 
proc.StartInfo.RedirectStandardOutput = true; 
proc.Start(); 
if (cmd.Length != 0) 
{ 
proc.StandardInput.WriteLine(cmd); 
} 
proc.Close(); 
} 
///  
/// 打开软件 
///  
/// 软件路径加名称(.exe文件) 
public void RunProgram(string programName) 
{ 
this.RunProgram(programName,""); 
} 
} 
} 
调用:
Command cmd = new Command(); 
cmd.RunCmd("dir"); 

发表评论

电子邮件地址不会被公开。 必填项已用*标注