Powershell使用cmd等待安装完成

Powershell使用cmd等待安装完成,powershell,process,cmd,installation,Powershell,Process,Cmd,Installation,我正在运行一个脚本,需要调用一个setup exe,然后调用另一个setup exe,需要先完成第一个脚本,然后才能继续,现在由于一些尴尬的场景,这是使用cmd完成的,因为我需要添加开关等和变量,就像我得到的一样,我可以使用启动进程,然后-等待,但进程会以单独的msp打开,使用cmd正是我发现的让安装程序真正运行的方法 那么我的问题是,如何让脚本在继续之前等待命令完成和安装完成 我试着四处看看,但它似乎不适合我使用cmd运行这些程序的场景 我现在的代码是 $inslocation = "inst

我正在运行一个脚本,需要调用一个setup exe,然后调用另一个setup exe,需要先完成第一个脚本,然后才能继续,现在由于一些尴尬的场景,这是使用cmd完成的,因为我需要添加开关等和变量,就像我得到的一样,我可以使用启动进程,然后-等待,但进程会以单独的msp打开,使用cmd正是我发现的让安装程序真正运行的方法

那么我的问题是,如何让脚本在继续之前等待命令完成和安装完成

我试着四处看看,但它似乎不适合我使用cmd运行这些程序的场景

我现在的代码是

$inslocation = "install\location.exe" 
$insarg = "arguments" 
Start-process $inslocation $insarg -wait

非常感谢您的帮助!提前谢谢。

我有一个名为PowerShell的模块,可能会有所帮助。它是专为你的工作而设计的。它有一个名为processs的子模块,该子模块具有用于说明父setup.exe启动的任何子进程的函数

导入后,您可以像这样使用它:

Install-Software -OtherInstallerFilePath 'C:\install\location.exe' -OtherInstallerArgs 'args here'

它将启动location.exe安装程序,等待它和所有子进程完成后再释放控制。

Tiny不清楚您的问题,但我相信这将使您走上正确的轨道

最简单的方法是使用等待过程

Start-Process "YourProcess"   
Wait-Process -name "YourProcessName" -erroraction SilentlyContinue
...
使用notepad.exe的示例:

Start-Process notepad.exe

Wait-Process -Name notepad -ErrorAction SilentlyContinue

Write-Host "notepad is now closed"

请发布你的代码,这样我们就可以看到你在说什么了。对不起!最初我是用cmd来调用命令的,但我刚刚回答了我自己的问题,我度过了一个美好的一天!请注意,我有点超前了,所以现在我有$inslocation=“install\location.exe”$insarg=“arguments”启动进程$inslocation$insarg-等等,我意识到它启动了一个安装程序,然后启动了几个其他msp文件,并在这些文件完成时关闭了安装进程,我需要在继续之前把整个事情完成。很抱歉,又出现了混乱!请编辑您的问题,并在那里添加代码,以便以合理的方式阅读。这听起来像是可行的,但我从未在脚本中真正安装过模块,最好的方法是什么,这个脚本需要复制并按需运行,因此每次运行脚本时我都必须安装它并手动调用它,而不是事先部署它。另外,模块需要哪些文件,只有softwareinstallmanager.psd1?V2 compat one?不管怎样,我可以将它复制到模块目录并导入到脚本中,我会对它进行测试,但我非常确定这会起作用谢谢你,巨大的帮助!令人惊叹的!如果是,请确保将此标记为答案。您好,很抱歉响应太晚。我刚刚有时间测试此问题,不幸的是,它对我不起作用,例如,我的程序打开了一个名为Setup.exe的进程,然后打开了2个附加进程,但在2个进程继续运行时关闭了安装程序。我现在要做的是获取2进程的名称,根据名称获取进程的id,然后让它在该进程id上等待进程,然后继续下一次安装。