为什么当我在命令行中输入文件名称(不带扩展名)时文件就会被打开?

为什么当我在命令行中输入文件名称(不带扩展名)时文件就会被打开?

truffle.js在 Windows 10 上,我在当前文件夹中有一个名为的文件。我truffle在 cmd 窗口中写入,希望调用truffle位于路径其他位置的程序。

相反,truffle.js在我最喜欢的 IDE 中打开(.js文件与该 IDE 关联)。我以为这种行为只对可执行文件、.bat.com如此.exe。为什么文件会发生这种情况.js

注意:我随后发现我的路径上根本没有truffle安装任何东西,但我的问题仍然存在:为什么 Windows 会在不可执行文件上完成我未指定的扩展?

即使安装了 truffle 并重新启动 cmd 后,我仍然无法让真正的 truffle 在包含文件的文件夹中运行truffle.js

答案1

因为默认%PATHEXT%设置为.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC。请注意它如何包含.js

这意味着如果您输入一个名称,CMD 将在当前文件夹中按顺序查找带有这些扩展名的文件。只有在那之后,它才会考虑 中的内容%PATH%。此行为无法更改。%PATHEXT%但是您可以像修改任何其他环境变量一样进行修改。

您可以使用WHERE命令来检查要打开哪个路径(例如where truffle),它将像 CMD 一样自动搜索 %PATH% 和 %PATHEXT%。

相关内容