有时候需要执行多条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);