【问题标题】:How to Read Process output as Model如何将流程输出读取为模型
【发布时间】:2021-06-13 03:45:10
【问题描述】:

我可以用下面的代码得到这个过程的输出

var p = new Process
{
  StartInfo =
  {
    UseShellExecute = false,
    RedirectStandardOutput = true,
    CreateNoWindow = true,
    FileName = "cmd",
    Arguments = "list id"
   }
 };
 p.Start();
 var _Data = await p.StandardOutput.ReadToEndAsync();
 await p.WaitForExitAsync();

 File.WriteAllText("asd.txt", _Data);

在输出中我有这样的信息

Name   Id            Version
----------------------------
WinRAR RARLab.WinRAR 6.01.0

问题是如何获取name、id、version这3个字段?

【问题讨论】:

标签: c#


【解决方案1】:

在这种情况下,输出是制表符划定的,因此您可以.Split(‘\t’) 输出的第一行和第三行并使用结​​果数组的非空元素。 Split 的重载使用 StringSplitOptions 枚举,这将允许您忽略空元素。你想要StringSplitOptions.RemoveEmptyEntries。

但是,如果您使用 PowerShell 而不是进程,您将获取数据,以便您按名称(“名称”、“版本”等)访问值。值得深思。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 2023-02-04
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 2011-08-12
    • 2015-11-06
    相关资源
    最近更新 更多