我有一些在C#中运行cmd命令的代码,它在WinForm中运行得很好但是在控制台应用程序中运行它时它不起作用。我有点担心为什么会这样,我尝试添加Windows.Forms作为参考并将using
添加到代码中,但这也不起作用。我唯一能想到的是因为它作为一个控制台运行,它不能在此之上运行另一个控制台窗口?
感谢任何帮助。
ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
Process console = Process.Start(cmd);
console.StandardInput.WriteLine("command to run");
答案 0 :(得分:1)
以下代码将执行您想要的任何控制台命令并在当前窗口中输出控制台文本,while(true)之后的所有内容都是示例:
ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = false;
cmd.WindowStyle = ProcessWindowStyle.Normal;
Process console = Process.Start(cmd);
while(true)
console.StandardInput.WriteLine("pause");
如果您不想要任何控制台输出,请将CreateNoWindow设置为true。此代码也可以在使用System.Diagnostics
的控制台应用程序中运行 祝你好运!