我想在一个循环中每次都用不同的并行参数执行相同的 exe。
所以我决定使用Start-Job
,但是当我尝试它时,我意识到当第二个示例启动时,第一个示例被取消了:
foreach($name in $insanceNames)
{
Start-Job -ScriptBlock { & "C:\program.exe" $args } -ArgumentList /instName,$name
}
字符串
当第二个示例启动时,第一个示例被中断,没有错误。
如果我通过两个控制台手动并行执行同一个程序,就不会有这个问题。
注意:我不能只使用“&”启动程序,因为我需要在不等待先前示例完成的情况下运行它们。
1条答案
按热度按时间ax6ht2ek1#
最后,我把
Start-Job
改成了Start-Process
,它就像我预期的那样工作了。我正在寻找this post和
Start-Process
之间的区别,我不明白为什么Start-Job
停止前一个示例,而Start-Process
保持所有预期的示例。不过,我解决了我的问题。