首页 > 编程语言 >C#开发一个可被带参数调用并返回数据的控制台应用程序

C#开发一个可被带参数调用并返回数据的控制台应用程序

时间:2023-11-10 16:47:55浏览次数:36  
标签:exe string C# 应用程序 myProcess output StartInfo 控制台 path

1 标准输出流控制台程序:

namespace ReturnConsoleWrite
{
    class Program
    {
        static void Main(string[] args)
        {
            //程序功能:将所以应用程序输入参数连成一个字符串
            string _output=null;
            for (int i = 0; i < args.Length; i++)
            {
                _output += args[i];
            }
            Console.Write(_output);
        }
    }
}

打包成EXE,如下:

先在cmd窗口测试下看看:

(1)在文件所在目录输入: cmd 然后回车

(2)在cmd窗口输入exe的名称+参数(参数用空格隔开即可)

测试正常!

下面我们用C#再写一个Winform窗体程序来调用上面那个控制台程序试试。

Winform窗体程序


代码如下:

namespace Call
{
    public partial class Form1 : Form
    {
        string _bathpath= System.IO.Directory.GetCurrentDirectory();
        string _call_exe_path;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            /////第一种:返回值类型的exe
            //Process myProcess = new Process();
            //string para = textBox1.Text;
            //ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(_call_exe_path, para);
            //myProcess.StartInfo = myProcessStartInfo;
            //myProcess.Start();
            //while (!myProcess.HasExited)
            //{
            //    myProcess.WaitForExit();
            //}
            //int returnValue = myProcess.ExitCode;
            //textBox2.Text = returnValue.ToString();

            ///第二种:

            Process p = new Process();
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.FileName = _call_exe_path;
            p.StartInfo.CreateNoWindow = true;
            p.StartInfo.Arguments = textBox1.Text;//参数以空格分隔,如果某个参数为空,可以传入””
            p.Start();
            p.WaitForExit();
            string output = p.StandardOutput.ReadToEnd();
            textBox2.Text = output;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text ="BathPath:"+ _bathpath;
            //_call_exe_path = _bathpath + "\\ReturN.exe";
            _call_exe_path = _bathpath + "\\ReturnConsoleWrite.exe";
        }
    }
}

声明:本文参考资料——https://developer.aliyun.com/article/614108

标签:exe,string,C#,应用程序,myProcess,output,StartInfo,控制台,path
From: https://www.cnblogs.com/StephenYoung/p/17824437.html

相关文章

  • CF1428F Fruit Sequences 题解
    使用了一种和大多数题解不同的做法。虽然是带\(log\)的。思路首先考虑如何求一个固定左端点的答案。我们发现,每个答案会随着右端点的递增单调不降。而每个答案在增加时会形成若干个区间。例如:11101010111111我们答案增加的区间即为:11100000000111可以发现,这个区间就......
  • 解决etcd服务--listen-metrics-urls=http://127.0.0.1:2381
     1、查看etcd的2381端口[root@master-nodemanifests]#netstat-anp|grep2381tcp00127.0.0.1:23810.0.0.0:*LISTEN21765/etcd2、获取etcd的pod[root@master-nodemanifests]#kubectlgetpod-ANAMESPACENAME......
  • C#使用NPOI 读取并修改 Excel 模版(移动行,增加行)
    准备一下:templatePath为模版路径,初始化workbookvarworkbook=newXSSFWorkbook(File.OpenRead(templatePath));varsheet=workbook.GetSheetAt(0); //1、指定行、列单元格赋值sheet.GetRow(1).GetCell(2).SetCellValue(companyInfo?.FFullName); //2、模......
  • CF1043F Make It One
    题目描述给你一个长度为\(n\)的序列\(A_i\),问你最少能从这个集合中取出多少数使得其\(\gcd=1\)数据范围\(1\leqn\leq3\times10^5\);\(1\leqa_i\leq3\times10^5\).思路:首先观察一下这个数据范围,其中小于\(3\times10^5\)的质因数个数为\(6\)。所以我们可以考虑......
  • 【每日例题】蓝桥杯 c++ 手机尾数
    手机尾数题目30年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为11.72亿部。手机已经成为百姓的基本日用品!给手机选个好听又好记的号码可能是许多人的心愿。但号源有限,只能辅以有偿选号的方法了。这个程序的目的就是:根据给定的手机尾号(4位),按照—定的规则......
  • [BalticOI 2019 Day2] 汤姆的餐厅
    [BalticOI2019Day2]汤姆的餐厅题目背景译自BalticOI2019Day2T1.Tom'sKitchen题目描述Tom'sKitchen是一家非常受欢迎的餐厅,其受欢迎的原因之一是每份菜都由至少$K$名厨师进行准备。今天有$N$份菜需要准备,第$i$份菜的准备时间是$A_i$小时。Tom可以......
  • 关于 can 的一些理解。
         我也是在板子上进行了测试,如果没有通讯的情况下,CANH与CANL确实是2.5V左右。 ......
  • docker修改宿主机为容器映射的端口
    1.先关闭容器root1@ubuntu22:~$dockerstop0912.再停止docker服务root1@ubuntu22:~$sudostopdocker3.进入配容器置文件目录修改hostconfig.json文件root@ubuntu22:/var/lib/docker/containers/091302dc373cfa10d414a115276a2a18304052721df6f59c85138......
  • JavaScript--定时器案例
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title><......
  • 平安人寿基于 Apache Doris 统一 OLAP 技术栈实践
    导读:平安人寿作为保险行业领军企业,坚持技术创新,以数据业务双轮驱动的理念和更加开放的思路来应对不断增长的数据分析和应用需求;以深挖数据价值、保障业务用数效率为目标持续升级大数据产品体系。自2022年起平安人寿开始引入开源实时数据仓库ApacheDoris并基于此统一OLAP技术......