大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

C#如何调用ms-dos窗口运行多条批处理命令

Admin | 2010-7-2 12:26:48 | ReadNums | 12287 | 标签 asp.net | 打印本页
     

  批处理命令,是执行速度最快效益最高的命令。因为批处理命令,说白了,就是ms-dos环境下的命令,有很多的批处理命令,都是纯DOS下的命令。

  然而,批处理命令尽管功能强大,却存在不足之处。批处理命令只能完成基础性的功能,无法完成复杂的网络功能。因此,在很多情况下,程序开发者通常会使用各种开发语言作为开发工具,配合着批处理命令,实现功能强大执行速度较快的项目。

  下面,本站给大家介绍的是,如何在CS结构的C#程序中调用ms-dos窗口运行多条批处理命令

  一、引入命名空间

  首先在CS文件头中,引用如下的代码:

  using System.Diagnostics;

  二、函数代码

  public void MyBatCommand()//名称
        {
   //如下的三个字符串,代表三条批处理命令
            string MyDosComLine1, MyDosComLine2, MyDosComLine3;

   MyDosComLine1 = "cd\";//返回根目录命令
            MyDosComLine2 =  "cd MyFiles";//进入MyFiles目录
            MyDosComLine3 =  "copy   *.*   e:\";//将当前目录所有文件复制粘贴到E盘

            Process myProcess = new Process();
            myProcess.StartInfo.FileName = "cmd.exe ";//打开DOS控制平台
            myProcess.StartInfo.UseShellExecute = false;
            myProcess.StartInfo.CreateNoWindow = true;//是否显示DOS窗口,true代表隐藏;
            myProcess.StartInfo.RedirectStandardInput = true;
            myProcess.StartInfo.RedirectStandardOutput = true;
            myProcess.StartInfo.RedirectStandardError = true;
            myProcess.Start();
            StreamWriter sIn = myProcess.StandardInput;//标准输入流
            sIn.AutoFlush = true;
            StreamReader sOut = myProcess.StandardOutput;//标准输入流
            StreamReader sErr = myProcess.StandardError;//标准错误流 

            sIn.Write(MyDosComLine1 + System.Environment.NewLine);//第一条DOS命令 
            sIn.Write(MyDosComLine2 + System.Environment.NewLine);//第二条DOS命令 
            sIn.Write(MyDosComLine3 + System.Environment.NewLine);//第三条DOS命令
            sIn.Write("exit" + System.Environment.NewLine);//第四条DOS命令,退出DOS窗口

            string s = sOut.ReadToEnd();//读取执行DOS命令后输出信息
            string er = sErr.ReadToEnd();//读取执行DOS命令后错误信息
            if (myProcess.HasExited == false)
            {
                myProcess.Kill();
                //MessageBox.Show(er);
            }
            else
            {
                //MessageBox.Show(s);
            }

            sIn.Close();
            sOut.Close();
            sErr.Close();
            myProcess.Close();
        }

  部分代码解释:

  想通过c#运行多条批处理命令,我们可以使用如下的格式来添加多条命令。

  sIn.Write(DOS命令代码 + System.Environment.NewLine);

  其中,DOS命令代码就是您想执行批处理命令,而System.Environment.NewLine则表明了,在批处理命令之后自动换行。


问题未解决:在线咨询我要在线咨询问题

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日