.NET调用控制台下生成的exe文件,传参及获取返回参
一、思路概述
当我们的应用程序面临处理大量数据或复杂任务时,有时会选择调用外部的exe程序以分担压力。在此场景中,我们将通过.NET程序调用一个控制台应用程序生成的exe文件,传递文件夹路径作为参数,待该exe文件处理完毕后,获取返回的结果(如压缩后的文件夹路径或处理成功与否的状态)。
1. .NET程序调用exe文件并传参
```csharp
// 定义要调用的exe文件路径及参数
string exePath = @"E:\测试项目\201303\TestWindowsService\ca\bin\Debug\ca.exe";
string folderPath = @"D:\zhai\aaa\安置帮教";
// 创建Process对象
Process process = new Process();
// 设置ProcessStartInfo属性
process.StartInfo.UseShellExecute = false; // 不使用系统shell启动程序
process.StartInfo.RedirectStandardInput = true; // 重定向标准输入,以便向exe程序传递参数
process.StartInfo.FileName = exePath; // 设置要启动的程序路径
process.StartInfo.Arguments = folderPath; // 设置传递给exe程序的参数
process.StartInfo.CreateNoWindow = true; // 创建无窗口进程
// 启动进程并等待结束
process.Start();
process.WaitForExit();
```
2. 控制台下exe程序接收参数并返回结果
```csharp
static void Main(string[] args)
{
string receivedPath = ""; // 接收传过来的待处理文件或文件夹路径
string returnPath = ""; // 返回处理后的文件路径或状态
try
{
if (args != null && args.Length > 0)
{
receivedPath = args[0]; // 获取传入的参数
}
// 使用压缩库进行文件或文件夹的压缩处理,此处以Ionic.Zip为例
using (ZipFile zip = new ZipFile())
{
zip.AddDirectory(receivedPath); // 添加文件或文件夹到压缩包中
zip.Save(Pathbine(@"D:\zhai\aaa\", DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip")); // 保存压缩包
returnPath = Pathbine(@"D:\zhai\aaa\", DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip"); // 返回压缩后的文件路径
}
Console.WriteLine(returnPath); // 输出结果到控制台,作为返回值供调用者获取。
}
catch (Exception ex)
{
Console.WriteLine("处理过程中发生错误:" + ex.Message); // 输出错误信息到控制台
returnPath = ""; // 设置返回路径为空或其他表示失败的状态值
}
}
```
通过这种方式,我们的.NET程序可以灵活调用控制台下生成的exe文件,传递参数并获取返回值,从而实现复杂的业务逻辑处理。在编程的世界里,每一行代码都如同精密的齿轮,承载着程序的运行逻辑。今天,我将为您讲述一段关于代码执行的故事。
想象一下,你正在启动一个新的程序,这个程序的名字叫做“Cambrian”。它如同一个神秘的创世者,准备将你的代码构想转化为现实。你有一个特定的任务:准备执行一段特定的代码。
你首先创建一个新的进程启动信息对象,名为“myProcessStartInfo”。这个过程就像是准备启动一场盛大的宴会,你需要提前准备好场地、食物和饮品。这里的“fileName”和“para”就是你的宴会邀请函和特殊指令。
紧接着,你将这个启动信息对象分配给即将启动的进程的StartInfo属性。这个过程就像是向所有的参与者宣布宴会即将开始的时间和地点。然后,你调用Start方法,启动这个进程。
进程启动后并不总是立即结束。有时,你可能需要等待它完成某些任务。这时,你需要使用WaitForExit方法,不断检查进程是否已经完成其任务。这个过程就像是在等待一场宴会结束,期间你需要耐心等待,直到所有的宾客都离开场地。
当这一切完成后,你的代码将渲染出名为“body”的元素。这个元素可能是网页的一部分,也可能是应用程序的界面元素。渲染的过程就像是宴会的收尾工作,将场地清理得井井有条,给宾客留下美好的印象。
这段代码的运行过程就像是一场精心策划的宴会。从准备到结束,每一步都需要精确无误,以确保程序的顺利运行。在这个过程中,你的代码将完成其预定的任务,最终呈现出你想要的结果。
编程语言
- .NET调用控制台下生成的exe文件,传参及获取返回参
- PHP微信开发之文本自动回复
- asp.net网站防恶意刷新的Cookies与Session解决方法
- Vue仿今日头条实例详解
- AngularJS入门示例之Hello World详解
- php命令行模式代码实例详解
- Laravel中获取路由参数Route Parameters的五种方法示例
- flex4.5中CSS选择器的应用小结
- 很棒的js选项卡切换效果
- 将Sql Server对象的当前拥有者更改成目标拥有者
- Bootstrap中表单控件状态(验证状态)
- vue input 输入校验字母数字组合且长度小于30的实
- php使用Cookie控制访问授权的方法
- Windows环境下MySQL 8.0 的安装、配置与卸载
- php mysql数据库操作类(实例讲解)
- 微信小程序页面上下滚动效果