Ich habe ein cmd in mein Programm aufgenommen, aber ich kann Befehle wie "cd" oder "@echo off" nicht verwenden, weil es einen neuen Befehl startet für jeden BefehlWie man cmd in mein Programm einfügt (und nicht nur einen einzigen Befehl ausführt)
if (e.KeyChar == (char)13)
{
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.WriteLine(textBox1.Text);
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
richTextBox1.Text = cmd.StandardOutput.ReadToEnd();
}
Was sollte es so sein: wenn Sie in einem Befehl in textbox1 und drücken tipe eingeben, sollten RichTextBox1 die Ausgabe angezeigt werden, und Sie können in den nächsten Befehl
Werfen Sie einen Blick darauf: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true Es zeigt, wie Sie mehrere Befehle ausführen können in einer einzigen Zeile. Erstellen Sie einfach eine Zeichenfolge mit den entsprechenden Trennzeichen und übergeben Sie alle Befehle gleichzeitig. –
aber wenn Sie die Ausgabe sehen möchten, bevor Sie in den nächsten Befehl (wie dir) tippe – SinOfficial
Sie könnten eine temporäre Charge in Ihrem Programm erstellen und dann diese ausführen, jedoch ohne wirklich zu wissen, was Sie tun möchten, ist es ein bisschen schwer zu empfehlen mehr – Icepickle