2017-10-10 2 views
0

J'essaie de connexion de thread simple pour la logique Windows Powershell.Attendez jusqu'à ce que le processus previos à la fin

code:

start call first_process 
start call second_process 
third_process 

J'utilise appel début pour exécuter le premier processus et deuxième processus en même temps et le troisième processus doit exécuter seulement après l'achèvement de la première et deuxième processus.

Comment est-ce possible dans Windows Powershell?

Répondre

0

Si vous utilisez l'applet de commande Start-Procces avec le paramètre -PassThru, vous pouvez utiliser une variable pour vérifier l'état actuel, dans ce cas vous voulez la propriété HasExited. Ci-dessous, nous vérifierons l'état et attendrons 15 secondes jusqu'à la fin des deux processus.

$first_process = Start-Process 'first_process' -PassThru 
$second_process = Start-Process 'second_process' -PassThru 

while ($first_process.HasExited -eq $false -and $second_process.HasExited -eq $false) 
{ 
    Start-Sleep -Seconds 15 
} 

Start-Process 'third_process'