我在我的程序中包含了一个cmd,但是我无法使用像" cd"这样的命令。或" @echo off"因为它为每个命令启动一个新的cmd
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();
}
应该是什么样的:如果您在textbox1中输入命令并按Enter键,则richtextbox1应显示输出,您可以输入下一个命令
答案 0 :(得分:0)
如果你想将命令行集成到你的应用程序中,我建议你在后台启动它,然后只需输入它的输入流并读取它的输出。
这样你就可以创建一种管道。
StreamWriter writer = new StreamWriter(process.StandardInput);
StreamReader reader = new StreamReader(process.StandardOutput);
存储对这些流的引用,只需使用它:
writer.WriteLine("dir");
string line = reader.ReadLine ();
每次只运行一个命令时,此方法将比运行命令行更有效。