Каков относительный порядок поиска Windows для исполняемых файлов в PATH?
Если у меня есть файлы a.com, a.cmd, a.bat и a.exe% PATH%, какой будет Windows, если я вызываю только команду "a"? Является ли это официально специфицированным где-то M $?
Мне просто нужно было слить исполняемый файл gvim.exe с -n, но мой gvim.bat, похоже, не запускается ни из командной строки, ни из диалогового окна Run.
Ответы
Ответ 1
Смотрите последовательность поиска команд в Microsoft Technet
Каждая переменная окружения PATH и PATHEXT предоставляет элемент последовательности поиска: PATH - это упорядоченный список каталогов "where", и PATHEXT - это упорядоченный список расширений файлов ( "что" ) для поиска (в если расширение не указано явно в командной строке). Однако перед использованием PATH выполняется поиск текущего каталога.
По умолчанию переменная PATHEXT имеет значение ".COM;.EXE;.BAT;.CMD"
Ответ 2
Подведено из ссылки Microsoft Technet, предоставленной mjv:
Windows будет проходить через каталоги в PATH слева направо (обычный порядок списка).
В каждом из них он пытается найти файл с каждым PATHEXT также слева направо, прежде чем перейти к следующей записи PATH.
Первый найденный файл выигрывает.
Итак, в вашем случае вам нужно изменить PATHEXT так, чтобы .BAT приходил к .EXE(или он всегда будет находить .exe сначала, а не .bat, который, скорее всего, захочет переопределить его, если в том же каталоге) а также поместите путь вашего "переопределить" gvim.bat раньше (раньше?) в листинге PATH, чем где-либо, где он мог бы найти gvim. * (потому что он пробует каждый PATHEXT в каждом перед тем, как продолжить PATH)
Ответ 3
Я считаю, что он проходит через% PATHEXT% и пробует каждый из этих