firstly, the programs you're running would need to support some form of parameters that support scripting events.
e.g.
Code:
:: START SCRIPT ::
call app1.bat
call app2.bat
...
and so on. each bat file would contain parameters and commands supported by the respective application. at the end of each call function, the script would then proceed to the next .bat file in the command chain.
the easiest way to do what you propose (assuming the applications support some form of automated scripting), would be to extract the image files of the apps you're interested in running before calling them directly from within the same session (i.e. without rebooting).
a method whereby you chain reboot commands would require something far more elaborate (e.g. using memdisk to pass additional parameters to a script that is able to detect which sequence in the command chain you're at, etc, ad infinitum)
(-: