41

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

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

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

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

1 ответ1

75

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

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

Вы можете использовать команду WHERE чтобы проверить, какой путь будет открыт (например, where truffle), который будет автоматически искать и% PATH%, и% PATHEXT% так же, как CMD.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .