【发布时间】:2012-06-24 16:38:02
【问题描述】:
在控制台应用程序中,我想运行 cmd 命令,但是正在创建一个新窗口,为什么?
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
startInfo.WorkingDirectory = @"C:\m_f";
startInfo.Arguments = "/c START _creator.bat";
process.StartInfo = startInfo;
process.Start();
编辑
我不得不将一些代码更改为:
startInfo.FileName = @"C:\m_f\_creator.bat";
startInfo.WorkingDirectory = @"C:\m_f\";
startInfo.Arguments = "some_args";
现在可以了
【问题讨论】:
-
控制台应用程序与您在此处作为外部进程启动的命令提示符(cmd.exe)不同。
-
你的问题是START,删除它。
-
你自己搞定了!窗口不是cmd.exe,是cmd.exe启动的程序。所以你启动程序本身来隐藏它。
-
另一个选项是将 /B 作为选项传递给
START- 这将运行命令而不创建另一个窗口。