Windows环境下CMD运行Node需添加.exe后缀才可执行的问题求助
Windows环境下CMD运行Node需添加.exe后缀才可执行的问题求助
各位大佬,我遇到个特别奇怪的问题,想请大家帮忙分析分析!
先说说背景:
- 前几天刚装了Node,当时在Windows 10的CMD里直接输入
node --version,能正常返回安装的版本号,一切都没问题。 - 后来因为需要切换不同的Node版本,我就装了NVM,把NVM的安装路径设为
C:\nvm,也顺利装好了需要的几个Node版本。 - 用
nvm use X.XX.XX(把X换成具体版本号)切换版本时,看起来是正常的——生成的符号链接能正确指向对应的Node安装文件夹,手动点击链接也能直接进入对应的文件夹,说明链接是有效的。 - 哪怕绕开符号链接,直接到具体版本的安装目录比如
c:\nvm\v16.0.0里打开CMD,输入node --version也能正常返回v16.0.0(这里我完全没加.exe后缀)。
重点来了,诡异的情况出现了:
我把
c:\nvm\v16.0.0添加到系统环境变量PATH之后,在任意路径下输入node --version,居然弹出报错:C:\>node --version The system cannot find the path specified但只要我给node加上
.exe后缀,输入node.exe --version,就又能正常返回v16.0.0了!
我已经排查了这些点,但还是没解决:
- 确认过
.exe是在PATHEXT环境变量里的 - 其他exe程序比如notepad,直接输入文件名就能正常打开,完全没问题
- 我试过卸载重装NVM和Node、重启电脑、清空后重新配置环境变量,甚至自己写了个测试exe文件,都能直接通过文件名运行,唯独Node必须加.exe后缀才行
- 也检查过了,不存在和node同名的bat、cmd或者其他后缀的文件,排除了文件类型混淆的可能
真的没头绪了,有没有大佬遇到过类似的问题?求支招!万分感谢!
备注:内容来源于stack exchange,提问作者Jacques Ramsden
相关产品推荐
相关产品推荐

