SSIS パッケージを呼び出す文字列配列に複数のコマンドがあります。ハードウェアを活用するために、一度に多くのパッケージを実行し、1 つのパッケージが完了するまで待ってから別のパッケージを追加したいと考えています。SOに関する他の同様の質問を見ると、次のようなものがうまくいくと思います:
cls
$commands = @()
$commands += "notepad.exe"
$commands += "notepad.exe"
$commands += "notepad.exe"
$commands += "notepad.exe"
$commands += "notepad.exe"
$commands += "notepad.exe"
foreach ($instance in $commands)
{
$running = @(Get-Job | Where-Object { $_.JobStateInfo.State -eq 'Running' })
if ($running.Count -le 2)
{
Start-Process $instance
}
else
{
$running | Wait-Job
}
Get-Job | Receive-Job
}
これにより、6 つのメモ帳を開くことができますが、あるしきい値 (この例では 2) まで待機しません。理想的には、メモ帳の 1 つを閉じるまで待機する必要があります (つまり、プロセスが終了します)。
誰もこれを以前にやったでしょうか?