Powershell使用cmd

时间:2016-03-09 16:21:54

标签: powershell process cmd install

我运行一个需要调用安装程序的脚本,然后另一个需要先完成才能继续运行的脚本,现在由于尴尬的情况,现在这是使用cmd完成的,因为我需要添加交换机和这样和变量,就像我得到的我可以使用启动过程然后等待但是过程打开单独的msp并使用cmd正是我发现的工作实际上让设置运行。

所以我的问题是如何让我的脚本等待我的命令完成并完成安装才能继续?

我已经尝试过环顾四周,但它看起来不像我使用cmd运行这些程序的情况。

我目前的代码是......

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

非常感谢任何帮助!提前谢谢。

2 个答案:

答案 0 :(得分:0)

我有一个名为SoftwareInstallManager的PowerShell模块可能有所帮助。它专为您正在进行的工作而设计。它有一个名为Processes的子模块,它具有用于解释父setup.exe启动的任何子进程的函数。

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

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

它将启动location.exe安装程序,等待它并在释放控件之前完成所有子进程。

答案 1 :(得分:0)

对你的问题一点都不清楚,但我相信这会让你走上正轨。

最简单的方法是使用Wait-Process。

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"