Net Core教程

C#调用控制台程序

本文主要是介绍C#调用控制台程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

主程序 .Net Core

 private static string CMDRun(string command)
        {
            var dir = AppDomain.CurrentDomain.BaseDirectory + @"\api\";


            if (!System.IO.Directory.Exists(dir))
            {
                return "api目录不存在";
            }

            var path = System.IO.Directory.GetFiles(dir, "*.exe").FirstOrDefault();

            if (string.IsNullOrEmpty(path))
            {
                return "api目录不存在exe程序";
            }

            var root = System.IO.Directory.GetDirectoryRoot(path);

            var fileName = System.IO.Path.GetFileName(path);


            using (Process p = new Process())
            {

                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.FileName = @"cmd.exe";
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.UseShellExecute = false;//将此属性设置为 false 使您能够重定向输入流、输出流和错误流
                p.Start();
                p.StandardInput.WriteLine(@"echo off ");//不显示命令
                p.StandardInput.WriteLine(root.Replace("\\", ""));  //先转项目所在的盘
                p.StandardInput.WriteLine($@"cd {dir}");  //再转到exe所在目录下
                p.StandardInput.WriteLine($"{fileName} {command}");//执行exe
                p.StandardInput.WriteLine("exit");
                

                string result = p.StandardOutput.ReadToEnd();

                var array = result.Split("\r\n");

                p.Close();
                p.Dispose();

                return array[array.Length - 3];
            }
        }

控制台 .Net Framework

private static void Main(string[] args)
 {
        
            if (args[0] == "GetProductList")
            {
                if (args.Length < 3)
                {
                    Console.WriteLine("需要参数[methodName,StartRow,Limit]");
                    return;
                }
                int.TryParse(args[1], out int StartRow);
                int.TryParse(args[2], out int Limit);
                //具体的事,比如这里是金蝶服务
                string resultStr = api_k3_SS.GetProductList(StartRow, Limit);
           Console.WriteLine(resultStr);
            } 
}

 

这篇关于C#调用控制台程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!