Windows环境下nvm use切换Node.js 12.18.0报错exit status 1
Windows nvm 版本切换报路径无效错误的处理方案
在Windows系统安装nvm后,通过nvm部署了两个Node.js版本,但执行版本切换操作时持续返回路径无法识别的报错,实际命令执行日志如下:
Microsoft Windows [Version 10.0.16299.64] (c) 2017 Microsoft Corporation. All rights reserved. C:\Windows\system32>nvm use 12.18.0 exit status 1: 'C:\Users\Sarmad' is not recognized as an internal or external command, operable program or batch file. C:\Windows\system32>nvm version 1.1.7 C:\Windows\system32>nvm ls * 15.8.0 (Currently using 64-bit executable) 12.18.0 C:\Windows\system32>nvm use 12.18.0 exit status 1: 'C:\Users\Ali' is not recognized as an internal or external command, operable program or batch file.
问题根因
本次报错和nvm-windows 1.1.7版本的已知兼容性bug直接相关。软件在生成版本切换的软链接命令时,未对包含空格的路径参数添加英文双引号包裹,命令执行过程中路径会被空格截断,系统会把截断后剩余的路径片段当成独立命令执行,最终抛出“不是内部或外部命令”的报错。
日志中出现的 C:\Users\Sarmad、C:\Users\Ali 就是路径截断后的片段——这类路径本质是nvm运行时读取的当前用户目录路径,当原路径包含空格时,就会在空格位置发生截断。
具体处理步骤
- 修正nvm配置文件的路径格式
找到nvm安装根目录下的settings.txt配置文件,核对文件内的两个核心配置项:root:nvm版本包的实际存储路径path:Node.js 全局软链接对应的目标路径
给所有存在空格的路径参数包裹英文双引号,例如原配置为root: C:\Program Files\nvm,修改为root: "C:\Program Files\nvm",避免后续脚本读取路径时出现解析截断。
- 调整终端运行权限
关闭所有已打开的命令提示符、PowerShell、各类终端工具,右键点击终端程序选择「以管理员身份运行」,重新执行nvm use 12.18.0切换命令。Windows系统下创建全局软链接需要管理员权限,权限不足会放大脚本解析异常的表现。 - 纯英文无空格路径迁移
如果上述操作后报错仍未消失,可将nvm安装目录、Node.js软链接目录整体迁移到无空格、无中文字符的纯英文路径下,例如设置nvm路径为D:\dev\nvm、软链接路径为D:\dev\nodejs,同步修改settings.txt内对应的root和path配置后,重启终端再执行切换操作。 - 升级nvm版本规避
可将nvm-windows升级到1.2.0及以上的修复版本,官方已在后续版本中修复了路径解析未加引号的兼容问题,升级后无需调整原有路径即可正常执行版本切换。
内容的提问来源于stack exchange,提问作者AliRehman7141
相关产品推荐
相关产品推荐

