Порядок, в котором командная строка выполняет файлы с одинаковыми именами (a.bat против a.cmd против a.exe)
-
03-07-2019 - |
Вопрос
В каком порядке командная строка Windows выполняет файлы с одинаковыми именами, но разными расширениями?
Например, у меня есть куча исполняемых файлов: something.cmd
, something.bat
и something.exe
.Какой из них будет выполнен, когда я наберу something
в командную строку (учитывая, что они были на пути и т.д.)?Если бы этот файл не существовал, какой из них тогда был бы выполнен?
Есть ли ссылка, которая описывает это?
Решение
Хорошо, я провел несколько быстрых экспериментов, основанных на некоторых других результатах моих поисков.
Суть в том, что порядок команд зависит от порядка хранения расширений в переменной окружения PATHEXT.Итак, изначально у меня было:
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.RB;.RBW
и для приведенного выше примера порядок, в котором он должен был выполняться, был следующим:
something.exe
something.bat
something.cmd
Изменение порядка, в котором они были определены в переменной окружения PATHEXT, действительно изменило порядок, в котором они были выполнены.