C# 执行exe文件传递参数和执行cmd命令

C# 执行exe文件传递参数和执行cmd命令

我写这个方法主要是为了实现7z压缩并生成安装包的功能。

 		// 执行exe文件  并带参数      
 		// runFilePath   例  7z.exe   也可以传递例如"c:\\netWeb\\7z.exe"
 		// args   是参数 
        public static bool StartProcess(string runFilePath, string args)
        {
            args = args.Trim();
            var output = "";
            using (Process process = new Process())//创建进程对象    
            {
                process.StartInfo.FileName = runFilePath;  // 调用进程名
                process.StartInfo.UseShellExecute = false;    //是否使用操作系统的shell启动
                process.StartInfo.RedirectStandardInput = true;      //接受来自调用程序的输入
                process.StartInfo.RedirectStandardOutput = true;     //由调用程序获取输出信息
                process.StartInfo.CreateNoWindow = false;             //不显示调用程序的窗口 
                process.StartInfo.RedirectStandardError = true;   //重定向标准错误输出
                if(runFilePath != "cmd.exe")
                {
                    process.StartInfo.Arguments = args;
                    process.Start(); // 后启动程序
                }
                else // 当直接调用cmd输入命令时传递参数的方法不一样
                {
                    process.Start(); // 先启动程序
                    process.StandardInput.WriteLine(args + "&exit");
                    process.StandardInput.AutoFlush = true;
                }
                
                output = process.StandardOutput.ReadToEnd(); // 这个是获取命令之后的返回值  可以不用
                process.WaitForExit(); // 等待exe执行完成
                //正常运行结束放回代码为0
                if (process.ExitCode != 0)
                {
                	// 读取错误信息
                    output = process.StandardError.ReadToEnd();
                    output = output.ToString().Replace(System.Environment.NewLine, string.Empty);
                    output = output.ToString().Replace("\n", string.Empty);
                    throw new Exception(output.ToString());
                }
                else
                {
                    output = process.StandardOutput.ReadToEnd();
                }
                process.Close();
            }
            return true;
        }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值