Search code examples
powershellwaitexecution

How to tell PowerShell to wait for each command to end before starting the next?


I have a PowerShell 1.0 script to just open a bunch of applications. The first is a virtual machine and the others are development applications. I want the virtual machine to finish booting before the rest of the applications are opened.

In bash I could just say "cmd1 && cmd2"

This is what I've got...

C:\Applications\VirtualBox\vboxmanage startvm superdooper
    &"C:\Applications\NetBeans 6.5\bin\netbeans.exe"

Solution

  • The question was asked long ago, but since answers here are kind of references, I may mention an up to date usage. With the current implementation of PowerShell (it's 7.2 LTS as of writing) you can use && as you would do in Bash.

    Conditionally execute the right-hand side pipeline based on the success of the left-hand side pipeline.

       # If Get-Process successfully finds a process called notepad,
       # Stop-Process -Name notepad is called
       Get-Process notepad && Stop-Process -Name notepad
    

    Further info on documentation