Порядок, в котором командная строка выполняет файлы с одинаковыми именами (a.bat против a.cmd против a.exe)

StackOverflow https://stackoverflow.com/questions/605101

Вопрос

В каком порядке командная строка 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, действительно изменило порядок, в котором они были выполнены.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top