我有一个Windows软件包列表,我使用下面的命令通过PowerShell进行安装:
& mypatch.exe /passive /norestart
mypatch.exe
正在从一个列表中传递,它不会等待之前的安装完成 – 它只是继续前进。 它构build了一个正在等待安装的巨大安装窗口。 另外,我不能使用$LASTEXITCODE
来确定安装是成功还是失败。
在开始下一步之前,有没有办法让安装等待呢?
Start-Process <path to exe> -Wait
当然,写一个运行安装程序的单行批处理脚本。 批处理脚本将在返回之前等待安装程序完成。 从PowerShell调用脚本,这将等待批处理脚本完成。
如果您有权访问mypatch
的写入方式,那么可以在完成后创建一些随机文件,PowerShell可以在while循环中检查其存在情况,并在文件不存在时进行睡眠。
如果你不这样做,你也可以让这个批处理脚本在安装程序完成时创建一个虚拟文件。
还有另外一种方式,尽管可能是所有这些中最糟糕的一种情况,就是在您调用安装程序后,对睡眠定时器进行硬编码(启动睡眠)。
编辑只是看到了JensG的回答。 不知道那个。 尼斯