process通过cmd.exe调用程序外应用

Posted islinyoubiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了process通过cmd.exe调用程序外应用相关的知识,希望对你有一定的参考价值。

 在做松山湖某个大型通讯公司的数据上传程序时,他们通过已经写好的数据上传exe程序来完成数据上传的。假如叫 h.exe

在控制台上执行以下命令就可以完成数据上传

h.exe  http://server  sn  sn.xml  result.txt

代码如下:

/*
 * Created by SharpDevelop.
 * User: PC1073
 * Date: 2021/8/24
 * Time: 20:56
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Diagnostics;
namespace processTest
{
	/// <summary>
	/// Description of MainForm.
	/// </summary>
	public partial class MainForm : Form
	{
		public MainForm()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			
			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
		}
		void Button1Click(object sender, EventArgs e)
		{
			Process cmd = new Process();
			cmd.StartInfo.FileName = "cmd.exe"; //程序名
			cmd.StartInfo.UseShellExecute = false; //关闭shell使用
			cmd.StartInfo.RedirectStandardError = true;
			cmd.StartInfo.RedirectStandardInput = true;
			cmd.StartInfo.RedirectStandardOutput = true;
			cmd.StartInfo.CreateNoWindow = true; //不显示窗口
			cmd.Start();
			
			cmd.StandardInput.WriteLine("C://Users//PC1073//Documents/build-h-unknown-Release//release//h.exe http://server sn sn.xml result.txt"); //参数
			cmd.StandardInput.Close(); //关闭输入
			
			string str = cmd.StandardOutput.ReadToEnd();
			Console.WriteLine(str);
			
			cmd.Close();
			cmd.Dispose();
			
		}
	}
}

其中,using System.Diagnostics.Process是要用到的类。

结果如下图所示:

 用text查看str内容,

 

 

 

完成。

多谢,亲爱的美美。

以上是关于process通过cmd.exe调用程序外应用的主要内容,如果未能解决你的问题,请参考以下文章

process通过cmd.exe调用程序外应用

process通过cmd.exe调用程序外应用

C#程序调用CMD执行命令方法

cmd命令行带参启动程序

VC++ std::system() API 在调用 CMD.exe 后立即返回

通过不使用通信的子进程捕获输出