В каталоге моего C:\Users\ME
у меня есть каталог под названием C:\Users\ME\Invoices
. Там я веду бухгалтерию и все такое. Однако я создал *.bat
файл, назвал его Invoices.bat
. Держу пари, все знают, куда это идет, в файле у меня был следующий скрипт:
start C:\Users\ME\Invoices
По какой-то причине Windows CMD зациклился и продолжал выдавать запросы CMD. К счастью, мой компьютер не завис, я закрыл окна. Однако эта проблема заставила меня заинтересоваться, конечно, у меня в PATH=C:\Users\ME
. Была ли система в замешательстве относительно того, что запустить? Или это был тот факт, что у них было одинаковое имя, случайно я изменил *.bat
имя файла на , Bookkeeping.bat
и он выполнился нормально? Я хотел бы узнать ваше мнение о проблеме, является ли это случайностью или ошибкой с одинаковым именем. Я хотел бы отметить, что я пробовал это и с запущенным explorer.exe, и с не запущенным.
решение1
Отstart
При выполнении командной строки, первый токен которой НЕ содержит расширения, CMD.EXE использует значение переменной среды PATHEXT для определения того, какие расширения искать и в каком порядке. Значение по умолчанию для переменной PATHEXT:
.COM;.EXE;.BAT;.CMD
Notice the syntax is the same as the PATH variable, with
semicolons separating the different elements.
А также
При поиске исполняемого файла, если нет совпадений по любому расширению, проверяется, совпадает ли имя с именем каталога. Если совпадает, команда START запускает Explorer по этому пути. Если это делается из командной строки, это эквивалентно выполнению CD /D по этому пути.
Так что да, это потому, что имя вашего файла совпадает с именем папки.