Ответ 1
К сожалению, вы не можете напрямую использовать командный символ Invoke-Item
. Эта команда let имеет тип возврата void и никаких параметров, которые допускают ожидание.
Лучшим вариантом является определение вашей собственной функции, которая обертывает API Process
так
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();
}
}