I'm not the foremost expert, but I believe the problem is that, by default, scripts are run synchronously. That means, each step in the script must finish before the next step starts.
The "start" command was created to run steps asynchronously:
start <command> <command-args>
For example, to run notepad (on a file called mytest.txt) asynchronously, you would type:
start notepad.exe mytest.txt
Running things asynchronously, particularly things with GUIs, can be very ... tricky. If you have a large number of things, it could really bog down your computer. If they have GUIs, all of the GUIs will open at the same time. Either way, your computer could become very difficult to use.
good luck