Хорошо, я провел несколько быстрых экспериментов, основываясь на некоторых других поисках, которые я проводил.
Суть в том, что порядок команд зависит от порядка, в котором расширения хранятся в переменной среды PATHEXT. Итак, изначально у меня было:
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.RB;.RBW
и для приведенного выше примера порядок его запуска:
something.exe
something.bat
something.cmd
Изменение порядка, в котором они были определены в переменной среды PATHEXT, действительно изменило порядок, в котором они выполнялись.