Порядок, в котором командная строка выполняет файлы с одинаковыми именами (a.bat vs a.cmd vs a.exe) - PullRequest
15 голосов
/ 03 марта 2009

В каком порядке командная строка Windows выполняет файлы с одинаковыми именами, но с разными расширениями?

Например, у меня есть куча исполняемых файлов: something.cmd, something.bat и something.exe. Что из этого будет выполнено, когда я наберу something в командной строке (если они были в пути и т. Д.)? Если этот файл не существует, какой из них будет выполняться?

Есть ссылка, которая описывает это?

1 Ответ

24 голосов
/ 03 марта 2009

Хорошо, я провел несколько быстрых экспериментов, основываясь на некоторых других поисках, которые я проводил.

Суть в том, что порядок команд зависит от порядка, в котором расширения хранятся в переменной среды PATHEXT. Итак, изначально у меня было:

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.RB;.RBW

и для приведенного выше примера порядок его запуска:

something.exe
something.bat
something.cmd

Изменение порядка, в котором они были определены в переменной среды PATHEXT, действительно изменило порядок, в котором они выполнялись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...