使用 PowerShell 运行应用程序并等待它完成

Posted

技术标签:

【中文标题】使用 PowerShell 运行应用程序并等待它完成【英文标题】:Run an application with PowerShell and wait until it is finished 【发布时间】:2011-12-16 00:26:48 【问题描述】:

是否可以使用PowerShell 运行应用程序并等待它完成? 例如我想运行Thunderbird 并在用户关闭它之后,然后在输出中打印一些东西?

第二件事 - 是否可以像在开始菜单中一样使用 thunderbird 关键字搜索此应用程序(当我们手动键入时,它会返回结果 Mozilla Thunderbird) - 并运行它?

谢谢!

【问题讨论】:

非常相似的东西here 【参考方案1】:

你可以这样做:

Start-Process myprogram.exe -NoNewWindow -Wait

或者,如果您想要更简洁的机制,总有Out-Null hack:

myprogram.exe | Out-Null

管道将等待程序终止,因此我们管道到Out-Null

至于查找应用程序,SO question 介绍了如何执行此操作。这是另一篇展示this method的文章。

您可能还想看看这篇文章,了解如何制作Powershell interact with Windows Search 和this one,这是开始按钮使用的。

【讨论】:

工作正常 - 你有任何寻找应用程序的解决方案吗? @hsz,用指向某人提出的类似问题和解决方案的指针更新了我的答案。我不知道有什么快速破解方法,但如果我找到了,我会添加它。 Invoke-Expression "$($complete_command_with_args) | Out-Null" 为我工作。

以上是关于使用 PowerShell 运行应用程序并等待它完成的主要内容,如果未能解决你的问题,请参考以下文章

如何暂停powershell脚本,直到调试器附加

在 CMD 中运行 PowerShell 脚本(带有弹出窗口)

Powershell命令等待一段时间

powershell 使用模板请求目录项并等待PowervRA完成

Powershell 或 CMD - 我想同时运行两个命令而不等待第一个命令完成

win7怎样运行powershell脚本