What's the difference between "start xyz.exe" and "cmd xyz.exe"? Both seem to be doing the same thing, but I do know there are some major differences there.
cmd xyz.exe fails as it should so I am unsure why no one sees the issue.The syntax is invalid.
CMD expects a script to be passed to it unless you use /c or /k to invoke command line mode. Passing an executable to CMD as parameter without the previous switches is invalid to CMD so you should consider yourself lucky if it does work as it fails for me.
If you can run a command from a script without using Start, then why add it. Note that Start is an internal command so it has a little overhead to add to the process. I personally do not care if you use it as I consider that it will not hurt too much. The use of CMD /C in a command file is invoking a separate instance of the command interpreter which is indeed an overhead of being another process, more memory and more differcult debugging.
When to use Start?
:: cmd notepad.exe REM stops here returning to a prompt so commented to run all script
cmd /c notepad.exe
start /wait "notepad.exe"
:: cmd www.msfn.org REM stops here returning to a prompt so commented to run all script
cmd /c www.msfn.org
The most direct commands would be notepad.exe and start www.msfn.org.
Executions in a command script are processed one after the other in sequence. This means each command is executed and the next command does not start until the previous command completes. If it did not do that by default then you would have a race condition happening and many scripts may fail with handling the return value of the previous command. If you use Start, then the process will continue without waiting so you can do other commands without concern to the Started process previously executed. If you use Start /Wait then the behavior of moving to the next execution is the same as the default of waiting in a script.
To do a series of commands at an interactive command prompt like in the creation of a script is to first type the char ( , press the return key and then type each command line. When done adding commands then you can type the char ) to close the batch of commands and then it will execute automatically.
Nice to see the wise owl is still flying around.