现在的位置: 首页 > 综合 > 正文

C#调用cmd.exe程序和外部程序

2017年11月25日 ⁄ 综合 ⁄ 共 2708字 ⁄ 字号 评论关闭

using System;

using System.Collections.Generic;

using System.Windows.Forms;

using System.Diagnostics;

namespace ApplyCmd

{

    static class Program

    {

        /// <summary>

        /// 应用程序的主入口点。

        /// </summary>

        [STAThread]

        static void Main()

        {           

            string[] commandTexts;

            commandTexts =new string[2];

            commandTexts[0] = "cd /d d:";

            commandTexts[1] = @"xcopy /test1/*.* /test2 /R/E/Y/D";

            CmdUtility.ExeCommand(commandTexts);

        }

    }

    /// 

    /// CmdUtility 的摘要说明。

    /// 

    public class CmdUtility

    {

 

        /// 

        /// 执行cmd.exe命令

        /// 

        ///命令文本

        /// 命令输出文本

        public static string ExeCommand(string commandText)

        {

            return ExeCommand(new string[] { commandText });

        }

        /// 

        /// 执行多条cmd.exe命令

        /// 

        ///命令文本数组

        /// 命令输出文本

        public static string ExeCommand(string[] commandTexts)

        {

            Process p = new Process();

            p.StartInfo.FileName = "cmd.exe";

            p.StartInfo.UseShellExecute = false;

            p.StartInfo.RedirectStandardInput = true;

            p.StartInfo.RedirectStandardOutput = true;

            p.StartInfo.RedirectStandardError = true;

            p.StartInfo.CreateNoWindow = true;

            string strOutput = null;

            try

            {

                p.Start();

                foreach (string item in commandTexts)

 

 

 

 

 

 

 

 

                {

                    p.StandardInput.WriteLine(item);

                }

                p.StandardInput.WriteLine("exit");

                strOutput = p.StandardOutput.ReadToEnd();

                p.WaitForExit();

                p.Close();

            }

            catch (Exception e)

            {

                strOutput = e.Message;

            }

            return strOutput;

        }

        /// 

        /// 启动外部Windows应用程序,隐藏程序界面

        /// 

        ///应用程序路径名称

        /// true表示成功,false表示失败

        public static bool StartApp(string appName)

        {

            return StartApp(appName, ProcessWindowStyle.Hidden);

        }

        /// 

        /// 启动外部应用程序

        /// 

        ///应用程序路径名称

        ///进程窗口模式

        /// true表示成功,false表示失败

        public static bool StartApp(string appName, ProcessWindowStyle style)

        {

            return StartApp(appName, null, style);

        }

        /// 

        /// 启动外部应用程序,隐藏程序界面

        /// 

        ///应用程序路径名称

        ///启动参数

        /// true表示成功,false表示失败

        public static bool StartApp(string appName, string arguments)

        {

            return StartApp(appName, arguments, ProcessWindowStyle.Hidden);

        }

        /// 

        /// 启动外部应用程序

        /// 

        ///应用程序路径名称

        ///启动参数

        ///进程窗口模式

        /// true表示成功,false表示失败

        public static bool StartApp(string appName, string arguments, ProcessWindowStyle style)

        {

            bool blnRst = false;

            Process p = new Process();

            p.StartInfo.FileName = appName;//exe,bat and so on

            p.StartInfo.WindowStyle = style;

            p.StartInfo.Arguments = arguments;

            try

            {

                p.Start();

                p.WaitForExit();

                p.Close();

                blnRst = true;

            }

            catch

            {

            }

            return blnRst;

        }

    }

}

 

抱歉!评论已关闭.