C# показывает только одну указанную c строку из CMD - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу, если cmd завершил, только 10-я строка отображается в метке, но я не знаю, возможно ли это или нет, если да, то как? Может быть с массивом? Эта программа должна получить, когда срок действия пароля пользователя истекает.

private void AccountBtn_Click(object sender, EventArgs e)
{
        Process pw = new Process();
        pw.StartInfo.UseShellExecute = false;
        pw.StartInfo.RedirectStandardOutput = true;
        pw.StartInfo.FileName = "cmd.exe";
        pw.StartInfo.Arguments = "/c net user " + System.Environment.UserName + " /domain";
        pw.Start();
        label1.Text = pw.StandardOutput.ReadToEnd();
        pw.WaitForExit();
}

1 Ответ

0 голосов
/ 08 апреля 2020

Вы можете сделать следующее:

var counter = 0;
while (!p.StandardOutput.EndOfStream)
{
    var line = p.StandardOutput.ReadLine();
    counter++;

    if (counter == 10)
    {
            label1.Text = line;
            break;
    }
}

Или вы также можете сделать (не стоит):

label1.Text = p.StandardOutput
               .ReadToEnd()
               .Split(new[] { Environment.NewLine },
                      StringSplitOptions.None)
               .Skip(9);
...