gpt4 book ai didi

powershell - 如何告诉 PowerShell 等待每个命令结束后再开始下一个命令?

转载 作者:行者123 更新时间:2023-12-03 04:10:28 26 4
gpt4 key购买 nike

我有一个 PowerShell 1.0 脚本来打开一堆应用程序。第一个是虚拟机,其他是开发应用程序。我希望虚拟机在打开其余应用程序之前完成启动。

在 bash 中我可以直接说 "cmd1 && cmd2"

这就是我所拥有的...

C:\Applications\VirtualBox\vboxmanage startvm superdooper
&"C:\Applications\NetBeans 6.5\bin\netbeans.exe"

最佳答案

通常,对于内部命令,PowerShell 会在开始下一个命令之前等待。此规则的一个异常(exception)是基于外部 Windows 子系统的 EXE。第一个技巧是管道到 Out-Null像这样:

Notepad.exe | Out-Null

PowerShell 将等待 Notepad.exe 进程退出后再继续。这很漂亮,但从阅读代码中发现有点微妙。您还可以使用Start-Process使用 -Wait 参数:

Start-Process <path to exe> -NoNewWindow -Wait

如果您使用的是 PowerShell 社区扩展版本,则为:

$proc = Start-Process <path to exe> -NoNewWindow -PassThru
$proc.WaitForExit()

PowerShell 2.0 中的另一个选项是使用 background job :

$job = Start-Job { invoke command here }
Wait-Job $job
Receive-Job $job

关于powershell - 如何告诉 PowerShell 等待每个命令结束后再开始下一个命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1741490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com