C#调用CMD执行多条命令并返回结果(从文件读取命令)

从当前目录下的cmd.txt文件中读取DOS命令并执行,一行一个命令

C#代码:

        string result=string.Empty;
        string[] all = File.ReadAllLines(@"cmd.txt");
        RunCMDCommand(out result, all);
        MessageBox.Show(result);
 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,没法返回信息;

参考:https://blog.csdn.net/niuba123456/article/details/90509850

https://www.cnblogs.com/applebox/p/11612457.html 

猜你喜欢

转载自www.cnblogs.com/pu369/p/12361805.html