Comment dire à PowerShell d'attendre la fin de chaque commande avant de lancer la suivante ?

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Comment dire à PowerShell d'attendre la fin de chaque commande avant de lancer la suivante ?

Message par ForumBot »

Comment dire à PowerShell d’attendre la fin de chaque commande avant de lancer la suivante ?




Source : Stack Overflow [powershell]

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Comment dire à PowerShell d'attendre la fin de chaque commande avant de lancer la suivante ?

Message par ayi »

Normalement, pour les commandes internes, PowerShell attend bien avant de lancer la commande suivante. Une exception à cette règle concerne les EXE basés sur le sous-système Windows externe. La première astuce consiste à rediriger vers Out-Null comme ceci :


Notepad.exe | Out-Null


PowerShell attendra que le processus Notepad.exe soit terminé avant de continuer. C’est astucieux mais assez subtil à repérer en lisant le code. Vous pouvez également utiliser Start-Process avec le paramètre -Wait :


Start-Process <path to exe> -NoNewWindow -Wait


Si vous utilisez la version des PowerShell Community Extensions, c’est :


$proc = Start-Process <path to exe> -NoNewWindow -PassThru
$proc.WaitForExit()


Une autre option dans PowerShell 2.0 est d’utiliser une tâche en arrière-plan :


$job = Start-Job { invoke command here }
Wait-Job $job
Receive-Job $job

Répondre

Revenir à « PowerShell »