Как скопировать строку процесса 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();