如何使用C#仅显示批处理文件输出的特定行

时间:2016-09-20 17:47:25

标签: c# batch-file outputstream

我正在创建一个C#windows窗体应用程序,它会自动检测连接到COM端口的设备并在标签或文本框中显示COM端口号。为了便于实现,我创建了一个批处理文件,它提供了有关COM端口的信息。所以我运行批处理文件并将输出存储在名为“result”的字符串中。出于验证目的,我使用“MessageBox.Show(result)”显示输出。下一步是我想使用标签在Windows窗体中仅显示“结果”的特定行。

// label1.text =结果的第9行//我正在寻找类似这样的东西

我该怎么做?我的做法是对的吗?

以下是附加代码:

$relative_path = 'images/upload/demo.jpg';
$phpThumb->RenderToFile(FCPATH .$relative_path);

2 个答案:

答案 0 :(得分:0)

您必须“解析”从其他进程中读取的内容,以提取所需的信息/行。

一个简单的实现可能如下所示:

string result = reader.ReadToEnd();
string[] lines = result.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
if (lines.Length >= 9)
{
    Console.WriteLine(lines[8]);
}
else
{
    // handle error
}

答案 1 :(得分:0)

您可以分别读取进程返回的每一行,然后只显示第9行:

using (StreamReader reader =  process.StandardOutput)
{
    var lines = new List<string>();
    string line;
    while ((line = reader.ReadLine()) != null)
        lines.Add(line);
    Console.Write(lines[8]);
    MessageBox.Show(lines[8]);
}