18

Invoke-Item呼び出しが終了するまでPowerShellを待機させるにはどうすればよいですか?実行不可能なアイテムを呼び出しているので、Invoke-Itemを使用して開く必要があります。

4

4 に答える 4

25

Start-Process -waitたとえば、を 使用するだけStart-Process -wait c:\image.jpgです。これは、@JaredParによるものと同じように機能するはずです。

于 2010-04-23T18:14:28.950 に答える
19

コマンドをOut-Nullにパイプします。

于 2010-04-24T20:44:56.493 に答える
8

Invoke-Item残念ながら、コマンドレットを直接使用することはできません。このコマンドletには、voidリターンタイプがあり、待機を許可するオプションはありません。

利用可能な最良のオプションは、次のProcessようにAPIをラップする独自の関数を定義することです。

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();
    }
}
于 2010-04-23T17:31:42.833 に答える
2

1つの簡単な方法

$session = New-PSSession -ComputerName "xxxxx" -Name "mySession"
$Job = Invoke-Command -Session $session -FilePath "xxxxx" -AsJob
Wait-Job -Job $Job
于 2016-10-14T15:41:57.120 に答える