Как скопировать строку процесса CMD.exe в текстовое поле C#

Мне нужно скопировать строки вывода CMD в текстовое поле, это возможно? если да, пожалуйста, покажите мне некоторые, чтобы узнать, как справиться с этим

enter code here
      private void pictureBox1_Click(object sender, EventArgs e)
       {
        label10.Visible = true;
        string cmd = "/c  adb install BusyBox.apk ";
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        proc.StartInfo.FileName = "cmd.exe";
        proc.StartInfo.Arguments = cmd;
        proc.StartInfo.RedirectStandardError = true;

        proc.StartInfo.UseShellExecute = false;
        //proc.StartInfo.CreateNoWindow = true;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.Start();

        proc.WaitForExit();
        pictureBox6.Visible = true;
        label10.Text = "Installation Complete";
        // MessageBox.Show("Install Complete ...");
        DateTime Tthen = DateTime.Now;
        do
        {
            Application.DoEvents();
        } while (Tthen.AddSeconds(4) > DateTime.Now);
        label10.Visible = false;
        pictureBox6.Visible = false;

    }

2 ответа

Ну, вы уже настроили все по мере необходимости, единственное, чего не хватает:

string consoleOutput = proc.StandardOutput.ReadToEnd();

Используйте это, тогда строка будет содержать весь вывод

proc.Start();
string line = proc.StandardOutput.ReadToEnd();

или для одной строки

proc.Start();
string line = proc.StandardOutput.ReadLine();

и если вы хотите вывод построчно, то

while (!proc.StandardOutput.EndOfStream) {
    string line = proc.StandardOutput.ReadLine();
    // do your stuff
}

или вы можете попробовать это тоже, сначала удалите proc.WaitForExit(); так как ReadLine будет ждать, пока данные не станут доступны или поток не будет закрыт. Когда поток закрыт, ReadLine вернусь null,

string line;
while ((line = proc.StandardOutput.ReadLine())!=null) 
{
    // textbox.text = line or something like that
}

Да, это работает для меня, но... не то, что я хочу... Мне нужно прочитать это Шаг за шагом, точно означает, что мне нужно показать, что происходит сейчас на CMD, и передать это на Textbot... То, как я это сделал, ждать проц. завершить и пропустить Result in text box ... возможно ли сделать что-то подобное в C#

enter code here
        proc.StartInfo.Arguments = cmd;
        proc.StartInfo.RedirectStandardError = true;

        proc.StartInfo.UseShellExecute = false;


        proc.Start();
        string line = proc.StandardOutput.ReadToEnd();
        textBox3.Text = line.ToString();
        proc.WaitForExit();
Другие вопросы по тегам