Como posso interagir com o prompt de comando a partir de código C #?
-
10-07-2019 - |
Pergunta
Eu estou tentando interagir com as janelas prompt de comando a partir do código. Meu objetivo é exibir o prompt, colocar em algum comando, exibir a saída, e repita. Mas parece que não consegue obter os três primeiros a trabalhar ao mesmo tempo.
private void button2_Click(object sender, EventArgs e)
{
Process proc = new Process();
proc.StartInfo.FileName = "cmd";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardInput = true;
proc.Start();
StreamReader k = new StreamReader(proc.StandardOutput.BaseStream);
textBox2.Text = k.ReadToEnd();
}
O código acima só trava. Se eu não definir RedirectStandardInput, então eu posso mostrar todo o prompt. E se eu fechar o escritor para standardInput posso obter um comando para executar, mas sem ver o aviso, ou ser capaz de repeti-la. Então, como posso obter o prompt para mostrar, executar um comando, e mostrar a saída ... repetidamente?
Estou esperando para reproduzir o comportamento da linha de comando Console2 mas estou um pouco sobrecarregado por seu código-fonte.
Solução
Verifique http://www.codeproject.com/cs/library/CommandLineHelper. asp
[marc_s] que os resultados de URL em um 404-página não encontrada.
O URL direita mais provável é: http://www.codeproject.com/ KB / string / CommandLineHelper.aspx
Outras dicas
Eu acho que você não pode. Se você mostrar o Prompt de comando do console, você não será capaz de ler a saída. Eu acho que você precisa desenhar o seu próprio prompt de comando se o seu ler a saída de um processo.