Почему файл открывается, когда я пишу его имя, без расширений, в командной строке?

В Windows 10 у меня есть файл с именем truffle.js в текущей папке. Я пишу truffle в окне cmd, ожидая вызвать truffle, которая находится в другом месте на моем пути.

Вместо этого в моей любимой среде IDE открывается truffle.js (.js связаны с этой IDE). Я думал, что это поведение только для исполняемых файлов, .bat, .com и .exe. Почему это происходит для файла .js?

Примечание. Впоследствии я обнаружил, что у меня нет кода truffle, установленного на моем пути, но мой вопрос остается: почему Windows завершает расширение, которое я не указал в неисполняемом файле?

Даже после установки трюфеля и перезапуска cmd я не могу запустить настоящий трюфель в папке, содержащей файл truffle.js .

41 голос | спросил ripper234 11 J0000006Europe/Moscow 2018, 16:34:10

1 ответ


75

Потому что %PATHEXT% установлен в .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC по умолчанию. Обратите внимание, что он содержит .js.

Это означает, что если вы наберете имя, CMD будет искать файлы с указанными расширениями в указанном порядке в текущей папке. Только после этого он рассмотрит, что находится в %PATH%. Это поведение не может быть изменено. Вы можете изменить %PATHEXT%, хотя, как и любая другая переменная среды.

ответил Daniel B 11 J0000006Europe/Moscow 2018, 17:02:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132