如何让PowerShell等待Invoke-Item完成?

ara*_*orn 17 powershell invoke wait

如何使PowerShell等到Invoke-Item调用完成?我正在调用一个不可执行的项,所以我需要使用Invoke-Item来打开它.

ste*_*tej 20

Start-Process -wait例如, 只需使用Start-Process -wait c:\image.jpg.这应该与@JaredPar的方式相同.


Sha*_*evy 16

将命令传递给Out-Null.

  • 你能举个例子吗?`调用表达式... | 出空`? (2认同)

Jar*_*Par 8

不幸的是,您无法Invoke-Item直接使用Commandlet.此命令具有void返回类型,并且没有允许等待的选项.

可用的最佳选择是定义您自己的函数,如此包装ProcessAPI

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();
    }
}
Run Code Online (Sandbox Code Playgroud)