Winform中实现执行cmd命令的工具类

场景

Winform中执行cmd命令的工具类,比如调用某些exe,类似mysqldump.exe这样类似的命令。

新建工具类CmdHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace mysqldatabak
{
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Diagnostics;

    namespace Helper
    {
        /// <summary>
        /// 执行命令
        /// </summary>
        public class CmdHelper
        {
            ///
            /// 执行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();
                    //strOutput = Encoding.UTF8.GetString(Encoding.Default.GetBytes(strOutput));
                    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;
            }
        }

    }
}

调用示例

                        string cmdStr = mysqlDumpPath + " -h " + this.host.Text.Trim() + " -u" + this.username.Text.Trim() + " -p" + this.password.Text.Trim() + " " + this.database.Text.Trim() + " " + tableName + " > " + """ + this.textBox_bak_path.Text.Trim() + "\" + tableName + ".sql"";
                        CmdHelper.ExeCommand(cmdStr);
博客园: https://www.cnblogs.com/badaoliumangqizhi/ 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。
原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/15361769.html