新进程完成后保持控制台窗口打开

2024-03-29

我目前有一部分代码可以创建一个新进程并从 shell 执行它。

Process p = new Process();
...
p.Start();
p.WaitForExit();

这使得窗口在进程运行时保持打开状态,这很棒。不过,我也想把窗户打开after完成查看潜在消息。有没有办法做到这一点?


更容易捕获输出 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.beginoutputreadline(v=vs.110).aspx来自两个标准输出 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput(v=vs.110).aspx标准误差 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standarderror(v=vs.110).aspx,将每个输出存储在 StringBuilder 中,并在该过程完成时使用该结果。

var sb = new StringBuilder();

Process p = new Process();

// redirect the output
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;

// hookup the eventhandlers to capture the data that is received
p.OutputDataReceived += (sender, args) => sb.AppendLine(args.Data);
p.ErrorDataReceived += (sender, args) => sb.AppendLine(args.Data);

// direct start
p.StartInfo.UseShellExecute=false;

p.Start();
// start our event pumps
p.BeginOutputReadLine();
p.BeginErrorReadLine();

// until we are done
p.WaitForExit();

// do whatever you need with the content of sb.ToString();

您可以在中添加额外的格式sb.AppendLine区分标准输出和错误输出的语句,如下所示:sb.AppendLine("ERR: {0}", args.Data);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

新进程完成后保持控制台窗口打开 的相关文章

随机推荐

  • Apache2中可以有两个密码文件吗?

    我可以在 apache2 sites enabled 000 default 配置文件中包含两个 AuthUserFile 指令吗
  • Google App Engine“搜索”的测试床存根

    我正在尝试使用开发应用程序服务器在 Python 中测试 Google App Engine 的新全文搜索功能 是否有存根search https developers google com appengine docs python se
  • Spark:“无法使用 UnspecifiedFrame。这应该在分析过程中进行转换。请提交错误报告”

    Spark 2 3 0 与 Scala 2 11 我正在尝试编写一个自定义聚合器并在每个窗口函数上运行它这些文档 https spark apache org docs latest sql programming guide html t
  • Google Guava 供应商示例

    请用合适的例子解释Supplier in Guava 接口的使用 The Supplier接口只是一个返回值的无参数函数的抽象 它是一个获取对象的某个或多个实例的方法 因为它很通用 所以可以用来做很多事情 贾里德解释了如何Multimaps
  • 如何设置 Heroku Postgresql 的日志记录级别?

    将 Heroku 与 Postgresql 插件结合使用 在查看我的日志后 似乎 postgresql 正在记录每个 单个 事务 我知道您可以通过执行类似的操作来设置日志级别 https www postgresql org docs 9
  • 字体和颜色 - #region

    是否可以更改 region 和 endregion 的字体颜色 我在以下位置找不到这个元素extras options fonts and colors 它在这里 TOOLS gt Options gt Environment gt Fon
  • csv-parse 解析的对象的第一个属性不可访问

    我正在使用以下内容解析 csv 文件csv 解析 https csv js org parse userID sysID 20 50 30 71 但是 在返回的对象上 无法访问从第一列创建的属性userID 这是我的代码 async fun
  • 改造:将对象列表反序列化为不同类型

    开发 Android 应用程序 我正在使用改造来得到我的回应 目前我已经制作了一个 POJO 模型类 其中包含所有类型的字段 实际上它们有更多的字段和自己的方法 所以我在这里简化了它们很多 代码来自Client class OkHttpCl
  • 使用 R TM 包查找 2 和 3 个单词短语

    我正在尝试找到一个代码 该代码实际上可以在 R 文本挖掘包中找到最常用的两个和三个单词短语 也许还有另一个我不知道的包 我一直在尝试使用标记器 但似乎没有运气 如果您过去处理过类似的情况 您可以发布经过测试且实际有效的代码吗 太感谢了 您可
  • 1.9.1 的 ruby​​ ping

    我想在我的 ruby 代码中 ping 一个站点 发现 net ping 是一个很好的库 不幸的是 当我尝试 gem install net ping 时 出现以下错误 C gt gem 安装 net ping错误 安装 net ping
  • MVVM 符合 WPF 应用程序中的本地化

    如何使用 MVVM 模式本地化 WPF 应用程序 我真的很想以 正确 的方式去做 我当前的方法是使用 resx 资源文件来本地化我的应用程序 我将它们包含在我的 xaml 代码中 xmlns localization clr namespa
  • asp.net 网站中的 Quartz.net 设置

    我刚刚将quartz net dll 添加到我的bin 中并启动了我的示例 如何使用基于时间的quartz net 调用C 方法 using System using System Collections Generic using Sys
  • 开始后取消/停止 jquery fadeOut

    我有一个非常简单的页面 当用户单击页面上的特定条目时 该页面会显示状态更新 这一切工作正常 第一次点击更新id sts 如果输出正确 6 秒后这种现象就会消失 然而 虽然它会淡出 但如果用户单击另一个链接 DIV 会使用新文本进行更新 但它
  • Symfony2 动态/依赖形式

    我有一个包含 3 个依赖字段的表单 制造商 gt 制造商产品组 gt 制造商产品系列 所以我想选择一个制造商 基于制造商的产品组和基于产品组的产品系列 有一个 CookBook Entry 关于如何处理此类动态表单 它很容易为Manufac
  • 手动滚动到锚点时更改 url?

    默认情况下 如果我的网站中有锚点 则当我单击链接 即 www mysite com anchor 时 地址栏上的 URL 会发生更改 当我滚动到某个锚点时 是否可以立即更改地址栏中的 URL 或者有一个包含多个锚点的长文档 当我点击新的锚点
  • 分裂蜂群图

    如何按组分割蜂群图 类似于 使用 ggplot2 分割小提琴图 https stackoverflow com questions 35717353 split violin plot with ggplot2 但我想得到的不是密度图 而是
  • 全屏模式下的 ChromeDriver

    我正在尝试将 F11 发送到 ChromeDriver 但它没有响应 当我按 F11 时 Chrome 就会进入全屏模式 当我通过 ChromeDriver 发送 F11 时 却没有 这对于 ChromeDriver 中的任何 F 键都是相
  • 字典 <> 中的条目有限制吗?

    我有大约 3000 个不同的文件需要在游戏过程中的不同时间进行组织和检索 我创建了自己的变量结构 我正在考虑创建一本 词典 在我的应用程序开始时 只需在游戏开始之前加载我的所有文件 我想知道性能 包含这么多条目的字典会导致我的应用程序变慢吗
  • 使用反射从 Visual Studio(32 位)中的 T4 模板中分析 64 位 DLL

    我想使用反射从 T4 模板中分析 DLL 以便我可以根据反射分析的结果生成代码 我知道 EnvDTE 将是一个更好的选择 但由于多种原因 这在我的情况下是不可能的 反射的问题是 DLL 是 64 位 DLL 如果我在 T4 模板中加载它 我
  • 新进程完成后保持控制台窗口打开

    我目前有一部分代码可以创建一个新进程并从 shell 执行它 Process p new Process p Start p WaitForExit 这使得窗口在进程运行时保持打开状态 这很棒 不过 我也想把窗户打开after完成查看潜在消