【问题标题】:node command returns nothing in Command Prompt (Windows 10)node 命令在命令提示符中不返回任何内容(Windows 10)
【发布时间】:2021-12-29 23:02:34
【问题描述】:

最近,我试图在我的台式电脑上安装 NodeJs,但遇到了这个奇怪的问题。当我打字时,例如。 node -v 命令,它什么也不返回。在 node 之后我可以添加任何内容,它只会被忽略并且不会在下一行返回任何内容。我已将 C:\Program Files\nodejs 添加到 PATH 系统变量中,但它仍然不起作用。 node -v 命令唯一起作用的时间是我(在 cmd 中)C:\Program Files\nodejs>cd C:\Program Files\nodejs,然后是C:\Program Files\nodejs>node -v,并在下一行返回正确的版本v16.13.1

显然,node 命令只有在我从 \nodejs 文件夹运行命令时才能正常工作并返回,但正如我在 Internet 上看到的那样,它应该可以工作(使用系统 PATH设置)从任何文件夹。我认为我的环境变量有问题,但如果你知道如何解决这个问题,请告诉我!每一条评论都值得赞赏!

我从https://nodejs.org/en/download/(LTS,Windows Installer,64 位)下载了 NodeJ。提前致谢!

PS。 npm 命令在任何文件夹中都能正常工作。

@Compo

【问题讨论】:

  • 在Windows中,搜索Edit environment variables(如果你没有管理员权限搜索Edit environment variables for your account)然后在顶部选择框中点击打开Path,点击“新建”,粘贴@ 987654330@,然后保存。重新打开 cmd 并尝试输入 node。顺便问一下,你是否碰巧有多个版本的 node 或者是另一个使用该命令的程序?
  • 打开命令提示符窗口,输入path 并按下[ENTER] 键。然后键入%systemroot%\system32\where.exe node node.exe,然后按[ENTER] 键。最后键入set pathext,然后按[ENTER] 键。现在,点击edit 链接后,将输出发布到问题中的代码框中。
  • @Compo 我已经按照你说的做了。在这里,在代码框中!

标签: node.js cmd environment-variables


【解决方案1】:

你的问题是你在%Path%里面有很多东西,显然在为node.exe添加的时候出错了。

第一个注意到的问题是你添加了C:\Program Files\nodejs\node.exe,而你应该只使用C:\Program Files\nodejs。此变量中的条目用于保存可执行文件的目录,而不是文件本身。但是,由于 C:\Program Files\nodejs 已包含在内,您只需删除该无效条目即可。

下一个问题是,您需要了解在命令提示符或批处理文件中输入node 时会发生什么。发生的情况是当前目录搜索名为 node 的文件,这些文件的扩展名与 %PATHEXT% 值中列出的扩展名匹配(按从前到后的顺序搜索)。如果找到匹配项,则运行该文件,并停止搜索。如果没有找到文件,%Path% 下列出的每个位置都会发生相同的过程(按从前到后的列出顺序),运行第一个匹配文件并停止搜索。

因此,通过使用node,在您的情况下发生的情况是正在搜索%Path%,因为没有名为node.COMnode.EXEnode.BATnode.CMDnode.VBS 的文件, node.VBEnode.JSnode.JSEnode.WSFnode.WSHnode.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

【讨论】:

  • 哇,惊人的答案!现在我明白了问题所在并修复了它!感谢您为编写此答案所做的努力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
  • 2023-03-19
  • 2021-06-10
  • 2013-08-27
  • 2021-03-12
  • 1970-01-01
  • 2018-11-04
相关资源
最近更新 更多