有时候需要执行多条dos命令才能完成一个功能,当然我们可以创建一个bat可执行文件,把命令都写入文件,再用C#去执行可执行文件就可以了。
本篇主要是C#调用cmd来执行命令,就是使用一个可变参数;
案例以在D盘创建一个123文件夹,然后查看ip地址;
dos命令:mkdir D:\\123
ipconfig
cmd执行命令函数:
public void RunCMDCommand(out string outPut, params string[] command){using (Process pc = new Process()){pc.StartInfo.FileName = "cmd.exe";pc.StartInfo.CreateNoWindow = true;//隐藏窗口运行pc.StartInfo.RedirectStandardError = true;//重定向错误流pc.StartInfo.RedirectStandardInput = true;//重定向输入流pc.StartInfo.RedirectStandardOutput = true;//重定向输出流pc.StartInfo.UseShellExecute = false;pc.Start();int lenght = command.Length;foreach (string com in command){pc.StandardInput.WriteLine(com);//输入CMD命令}pc.StandardInput.WriteLine("exit");//结束执行,很重要的pc.StandardInput.AutoFlush = true;outPut = pc.StandardOutput.ReadToEnd();//读取结果 pc.WaitForExit();pc.Close();}}
1. 设置可变参数:必须在实参的最后一个;
2.循环执行dos命令
3. 必须 exit进行退出,不然会一直停留在dos,没法返回信息;
C#调用
string resultStr = "";daMoTools.RunCMDCommand(out resultStr,"mkdir D:\\123", "ipconfig");Console.WriteLine(resultStr);