Sous Windows 10, j'ai un fichier appelé truffle.js
dans mon dossier actuel. J'écris truffle
dans la fenêtre cmd, en espérant appeler le programme truffle
qui réside ailleurs sur mon chemin.
truffle.js
est ouvert dans mon favori IDE _ (les fichiers .js
sont associés à cet IDE). Je pensais que ce problème ne se produisait que pour les fichiers exécutables, .bat
, .com
et .exe
. Pourquoi cela se produit-il pour un fichier .js
?
Remarque: j'ai découvert par la suite que je n'avais aucune truffle
installée sur mon chemin, mais ma question demeure: pourquoi Windows complète-t-il l'extension que je n'ai pas spécifiée sur un fichier non-exécutable?
Même après l'installation de truffle et le redémarrage de cmd, je ne parviens pas à exécuter la vraie truffe dans un dossier contenant un fichier truffle.js
.
Parce que %PATHEXT%
est défini sur .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
par défaut. Notez comment il contient .js
.
Cela signifie que si vous tapez un nom, CMD recherchera les fichiers avec ces extensions ajoutées, dans cet ordre, dans le dossier actuel. Ce n’est qu’après cela qu’il considérera ce qui est dans %PATH%
. Ce comportement ne peut pas être changé. Vous pouvez cependant modifier %PATHEXT%
, comme toute autre variable d’environnement.
Vous pouvez utiliser la commande WHERE
pour vérifier le chemin qui serait ouvert (par exemple, where truffle
), qui effectuera automatiquement une recherche à la fois% PATH% et% PATHEXT% de la même manière que CMD.