如何只执行cmd.exe进程一次,并在foreach中传递commandText
本文关键字:并在 一次 foreach commandText 执行 cmd exe 进程 | 更新日期: 2023-09-27 18:16:30
我想在foreach
外部只执行一次cmd.exe
的进程,而在内部foreach想向该进程发送参数。
我目前正在做这个:
var msbuildPath = (string) regKey.GetValue("MSBuildToolsPath");
foreach (var item in listBox1.Items)
{
var FilePath = item.ToString();
var startInfo = new ProcessStartInfo()
{
WindowStyle = ProcessWindowStyle.Hidden,
Arguments = String.Format("'"{0}'" /nologo ", FilePath),
FileName = Path.Combine(msbuildPath, "msbuild.exe")
};
var proc = Process.Start(startInfo);
proc.WaitForExit();
}
如果我说得对,它应该是这样的:
var msbuildPath = (string)regKey.GetValue("MSBuildToolsPath");
StringBuilder sb = new StringBuilder();
foreach (var item in listBox1.Items)
{
sb.AppendFormat("'"{0}'" ", item);
}
var startInfo = new ProcessStartInfo()
{
WindowStyle = ProcessWindowStyle.Hidden,
Arguments = sb.ToString() + " /nologo",
FileName = Path.Combine(msbuildPath, "msbuild.exe")
};
var proc = Process.Start(startInfo);
proc.WaitForExit();