想象一下DOS样式的.cmd文件,它用于以正确的顺序启动相互依赖的窗口化应用程序.
示例:
1)通过调用带参数的exe启动服务器应用程序.
2)等待服务器初始化(或固定的时间).
3)通过调用带参数的exe启动客户端应用程序.
在PowerShell中完成此类批处理作业的最简单方法是什么?
请记住,PowerShell可以访问.Net对象.Blair Conrad建议的Start-Sleep 可以替换为对服务器进程的WaitForInputIdle的调用,以便在启动客户端之前知道服务器何时就绪.
$sp = get-process server-application $sp.WaitForInputIdle()
您还可以使用Process.Start启动该过程并让它返回确切的过程.那你就不需要get-process了.
$sp = [diagnostics.process]::start("server-application", "params") $sp.WaitForInputIdle() $cp = [diagnostics.process]::start("client-application", "params")