C#如何在没有弹出控制台窗口的情况下运行.bat文件

6

我想运行一个没有弹出控制台窗口的.bat文件。

我正在使用以下代码:

Process p = new Process();

p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "file.bat";
p.Start();

string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();

使用此代码,程序会弹出一个控制台窗口一秒钟然后消失。如何使它永远不显示?

2
发生了什么事情...? - Brian
一个控制台窗口弹出了一秒钟,我能把它去掉吗? - Hady Hallak
1
我认为在我的手机上,启动信息参数是createnowindow。 - Sayse
项目 -> 属性 -> Visual Studio 中的应用程序 -> 输出类型。将“控制台”更改为“Windows 应用程序”。 - Brian
因为你正在运行一个 .bat 文件,所以会弹出一个控制台窗口... - But I'm Not A Wrapper Class
4个回答

16

只需要添加

p.StartInfo.CreateNoWindow=true;

控制台窗口不会弹出


你的回答就在我按下“发布答案”瞬间出现了。 - Magnus Grindal Bakken

7
p.StartInfo.CreateNoWindow = true;

7
另一个选择是:
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

要使用 ProcessWindowStyle.Hidden,必须将 ProcessStartInfo.UseShellExecute 属性设置为 false。看起来您正在使用该设置,所以应该没问题。

4

必须将CreateNoWindow选项设置为true。

p.StartInfo.CreateNoWindow = true;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接