你的问题是你在%Path%里面有很多东西,显然在为node.exe添加的时候出错了。
第一个注意到的问题是你添加了C:\Program Files\nodejs\node.exe,而你应该只使用C:\Program Files\nodejs。此变量中的条目用于保存可执行文件的目录,而不是文件本身。但是,由于 C:\Program Files\nodejs 已包含在内,您只需删除该无效条目即可。
下一个问题是,您需要了解在命令提示符或批处理文件中输入node 时会发生什么。发生的情况是当前目录搜索名为 node 的文件,这些文件的扩展名与 %PATHEXT% 值中列出的扩展名匹配(按从前到后的顺序搜索)。如果找到匹配项,则运行该文件,并停止搜索。如果没有找到文件,%Path% 下列出的每个位置都会发生相同的过程(按从前到后的列出顺序),运行第一个匹配文件并停止搜索。
因此,通过使用node,在您的情况下发生的情况是正在搜索%Path%,因为没有名为node.COM、node.EXE、node.BAT、node.CMD、node.VBS 的文件, node.VBE、node.JS、node.JSE、node.WSF、node.WSH 或 node.MSC 在当前目录中。因此,每个位置都会按顺序搜索,直到找到第一个匹配项,在您的情况下恰好是 C:\xampp\htdocs\WebRulet\node.JS。
因此,基本上通过使用假定/惰性命令,您正在有效地运行:
C:\xampp\htdocs\WebRulet\node.JS -v
这不是你想要的,为什么你没有得到你希望的结果。
因此,现在您通过使用做出假设的代码来了解发生的过程,以及这会如何导致问题、错误或潜在的灾难。您应该意识到所有这些搜索,特别是如果您的 %Path% 和/或 %PATHEXT% 值中有许多条目,运行命令的最快和最安全的方法是:
"C:\Program Files\nodejs\node.exe" -v
或者
"%ProgramFiles%\nodejs\node.exe" -v
请注意,这些绝对路径是双引号,因为它们包含空格字符。但是,空格不是文件名中唯一有问题的字符,因此最好的做法是,除非您确定没有此类有害字符,否则始终使用双引号。
现在我知道几乎每个网站都不会解释所有这些信息,而且您阅读的所有代码也不会遵循它,因此您可能希望在命令行上工作时尽量减少输入。
为此,您需要确保您的%Path% 值字符串的排序方式是您最常键入的可执行文件路径比任何其他可能匹配的位置更靠近开头文件。不过,我强烈建议您始终使用文件扩展名,以确保安全,(毕竟,通常只需再输入四个字符)。
注意您的%Path% 中的条目,缺少一些非常重要的条目,这意味着您的%Path% 本质上已损坏,需要修复,因为它会严重影响您的操作系统的正常运行。
要修复变量并正确排序,首先在命令提示符窗口中输入以下内容:
Start %SystemRoot%\System32\SystemPropertiesAdvanced.exe
在打开的窗口中,单击[Environment Variables] 按钮。将打开一个新窗口,在User variables (上窗格) 中,双击Path,并使用[New] [Delete]、[Move Up] 和[Move Down] 按钮使确保其中的条目按此顺序是:
%UserProfile%\AppData\Roaming\npm
%UserProfile%\.dotnet\tools
%UserProfile%\AppData\Local\Microsoft\WindowsApps
%UserProfile%\AppData\Roaming\Composer\vendor\bin
D:\Inkscape\bin
完成后,单击[OK] 关闭窗口,然后对System variables 执行相同的操作,(下窗格),使用以下有序列表:
%SystemRoot%\System32
%SystemRoot%
%SystemRoot%\System32\wbem
%SystemRoot%\System32\WindowsPowerShell\v1.0
%SystemRoot%\System32\OpenSSH
%ProgramData%\ComposerSetup\bin
%ProgramData%\DockerDesktop\version-bin
%ProgramFiles%\Docker\Docker\resources\bin
%ProgramFiles%\Azure Data Studio\bin
%ProgramFiles%\nodejs
%ProgramFiles%\dotnet
%ProgramFiles%\heroku\bin
%ProgramFiles%\Oracle\VirtualBox
%ProgramFiles%\NVIDIA Corporation\NVIDIA NvDLISR
%ProgramFiles(x86)%\NVIDIA Corporation\PhysX\Common
%SystemDrive%\xampp\bin
%SystemDrive%\xampp\htdocs\WebRulet
完成后单击[OK]、[OK] 和[OK] 关闭窗口,然后关闭命令提示符窗口。
从现在开始,您应该可以打开任何新的命令提示符窗口并使用:
node -v
但请记住,我强烈建议您养成使用其扩展的习惯:
node.exe -v
这应该导致:
v16.13.1