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.
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(); }}