How to get PowerShell to wait for Invoke-Item completion? How to get PowerShell to wait for Invoke-Item completion? powershell powershell

How to get PowerShell to wait for Invoke-Item completion?


Just use Start-Process -wait, for example Start-Process -wait c:\image.jpg. That should work in the same way as the one by @JaredPar.


Pipe your command to Out-Null.


Unfortunately you can't by using the Invoke-Item Commandlet directly. This command let has a void return type and no options that allow for a wait.

The best option available is to define your own function which wraps the Process API like so

function Invoke-Command() {    param ( [string]$program = $(throw "Please specify a program" ),            [string]$argumentString = "",            [switch]$waitForExit )    $psi = new-object "Diagnostics.ProcessStartInfo"    $psi.FileName = $program     $psi.Arguments = $argumentString    $proc = [Diagnostics.Process]::Start($psi)    if ( $waitForExit ) {        $proc.WaitForExit();    }}