从批处理文件接收输出并输入

本文关键字:输入 输出 批处理文件 | 更新日期: 2023-09-27 18:02:30

我目前正在c#中创建一个应用程序,允许您创建服务器并轻松管理它,为此它使用批处理文件来运行所述服务器。它通过创建批处理文件并使用这些文件运行服务器来工作。(顺便说一下Java)。

所以,我想知道的是,如果有可能从控制台获取输出,而不是像下面的代码那样将其转储到文本框中并关闭控制台,我需要它不断地从控制台发布任何输出,而不关闭也不滥发控制台打开的负载(尝试使用计时器)。

 Process myProcess = new Process();
        ProcessStartInfo myProcessStartInfo =
            new ProcessStartInfo(batchfilelocation);
        myProcessStartInfo.UseShellExecute = false;
        myProcessStartInfo.RedirectStandardOutput = true;
        myProcess.StartInfo = myProcessStartInfo;
        myProcess.Start();
        StreamReader myStreamReader = myProcess.StandardOutput;
        // Read the standard output of the spawned process.
        string myString = myStreamReader.ReadToEnd();

        textBox1.Text = textBox1.Text + myString;
        myProcess.Close();

我也想知道是否有可能允许从windows窗体控件输入,例如通过在控制台中输入命令并按enter键来执行命令的按钮。或者一个文本框,它允许你做同样的事情。

谢谢!

从批处理文件接收输出并输入

你不需要一个TextBox控件来存储字符串。请使用字符串变量。

string concatenatedString = null;
concatenatedString += myStreamReader.ReadToEnd();

其次,您可以在不创建控制台窗口的情况下完成此操作。下面的代码将允许您的程序运行,而不会看到大量的控制台窗口弹出。

myProcessStartInfo.CreateNoWindow = true;