Windows 下 NVM 的 Node 版本菜单切换工具 —— 输入编号即可切换 Node 版本。
中文 · English
这是什么 • 解决问题 • 功能特性 • 安装 • 运行使用 • 菜单预览 • 配置 • 常见问题 • 许可证
NVM-Windows Menu 是一个纯 Windows 批处理脚本,把 nvm 的命令行操作包装成一个可视化菜单。
打开脚本,已安装的 Node 版本会自动列出来,输入左侧编号(或直接输入版本号如 22.14.0)回车,就切换完成了 —— 不用再记 nvm list / nvm use 这些命令,也不用每次去翻版本号。
它底层依然调用的是你本机已安装的 nvm-windows,只是替你敲命令而已,不会改变 NVM 的任何行为。
如果你在 Windows 上用 nvm 管理 Node,下面这些坑大概率踩过:
| 场景 | 没有这个工具 | 有了 NVM-Windows Menu |
|---|---|---|
| 忘了装过哪些版本 | 先 nvm list,肉眼在一堆输出里找版本号 |
打开就是排序好的列表,当前版本带 ← 当前 标记 |
| 切换版本忘了开管理员 | 敲完 nvm use 报权限错误,白折腾一遍 |
脚本自动弹 UAC 提权,切换一次成功 |
ERROR open \settings.txt |
得先手动 cd 到 NVM 目录再执行命令 |
脚本自动切到 NVM 目录,不再报错 |
脚本里调 npm 后窗口闪退 |
批处理直接调用 npm.cmd 会永久接管控制权,父脚本不返回 |
内部全部用 call npm,不会闪退 |
| 装了新版本菜单不更新 | 手写脚本要改硬编码的版本列表 | 每次进菜单自动扫描目录,按语义化版本排序 |
| 想知道当前 npm 版本 | 再单独敲一条 npm -v |
菜单顶部直接显示 node / npm 当前版本 |
💡 这个脚本本身就是为了解决"自己写的 nvm 切换脚本一直闪退"而重写的,上面 4 个坑都是真实踩过并修复的。
- 🔢 编号切换 — 输入左侧编号即可切换,也可以直接输入完整版本号(如
22.14.0) - 🔍 自动扫描 — 自动扫描 NVM 目录下所有版本,按语义化版本号从小到大排序,装新版本不用改脚本
- 🛡️ 自动提权 — 检测管理员权限,非管理员时自动弹 UAC 申请(
nvm use重建目录链接必需) - 📍 自动定位 NVM — 依次从脚本配置 → 环境变量
NVM_HOME→ 注册表读取,找不到会给出明确提示 - 📦 一键装新版本 — 菜单里按
N直接输入版本号安装,不用退出脚本 - ✅ 切换结果回显 — 切换后立刻打印
node/npm版本,确认是否生效 - 🔄 刷新列表 — 按
R重新扫描 - 🪂 PowerShell 兜底 — 若 PowerShell 不可用,自动退回纯批处理扫描,不会白屏
- 🚫 零依赖 — 只需要 nvm-windows,不需要 Python、Node 等其他运行时
- Windows 10 / 11
- 已安装 nvm-windows(脚本不包含 nvm,需要你先装好)
- 至少已安装一个 Node 版本(
nvm install <version>)
1. 下载本仓库
git clone https://github.com/Je-taimais/NVM-Windows-Menu.git或者直接下载 ZIP 压缩包 解压。
2. 放到任意位置
脚本对存放位置没有要求,桌面、D:\tools\、NVM 目录里都行。建议单独放一个文件夹,方便以后更新。
3.(可选)确认 NVM 路径
绝大多数情况下脚本能自动找到 NVM。若你的 NVM 装在非常规位置,打开 nvm_menu.bat,在顶部「可配置区」手动指定:
set "NVM_DIR=D:\nvm-setup\nvm"装完就可以用了 —— 无需编译、无需安装、无第三方依赖。
双击 nvm_menu.bat 即可(会自动申请管理员权限,UAC 弹窗点「是」)。
也可以右键 → 以管理员身份运行,这样不会二次弹窗。
| 输入 | 作用 |
|---|---|
1 ~ N |
切换到对应编号的 Node 版本 |
22.14.0 |
直接输入完整版本号切换(带不带 v 前缀都行) |
R |
刷新版本列表 |
N |
安装新的 Node 版本 |
Q |
退出 |
⚠️ 切换只对新开的命令行窗口生效。 已经打开的终端仍然用旧版本,重开一个窗口即可。
双击 nvm_menu.bat
↓
UAC 弹窗 → 点「是」
↓
菜单列出已安装版本,当前版本标 ← 当前
↓
输入编号,回车
↓
显示切换后的 node / npm 版本 → 完成
============================================================
NVM-Windows Node 版本切换菜单 管理员权限 : 1
============================================================
NVM 目录 : D:\nvm-setup\nvm
软链接目录 : D:\nodejs
[ 当前状态 ]
node : v22.22.2
npm : 10.9.2
[ 已安装版本 · 输入左侧编号即可切换 ]
------------------------------------------------------------
[ 1 ] v22.22.2 ← 当前
[ 2 ] v24.20.0
------------------------------------------------------------
R 刷新列表 N 安装新版本
Q 退出
------------------------------------------------------------
请输入编号或命令 : _
脚本顶部的「可配置区」可以按需修改:
| 变量 | 默认值 | 说明 |
|---|---|---|
NVM_DIR |
空(自动探测) | NVM 安装目录,如 D:\nvm-setup\nvm。留空则自动从 NVM_HOME / 注册表读取 |
AUTO_ELEVATE |
1 |
是否自动申请管理员权限。1=自动提权(推荐),0=仅警告不提权 |
CHECK_NPM |
1 |
是否检测并显示 npm 版本。设为 0 可略过,菜单刷新会快一点 |
mode con cols/lines |
100 × 40 |
窗口大小,不需要可整行删除 |
🔤 文件编码是 GBK(代码页 936 / ANSI)。 用 VS Code 修改后请保存为 GBK / 936 编码;若存成 UTF-8,cmd 可能把中文行误当成命令执行。
双击后窗口一闪而过就没了?
通常是 NVM 没找到,脚本报错后直接退出。请确认 nvm-windows 已正确安装,或在脚本顶部手动设置 NVM_DIR。
提示「没有找到 nvm.exe」?
脚本会依次尝试:脚本内的 NVM_DIR → 环境变量 NVM_HOME → 注册表。三者都没读到就会报这个错。直接在脚本顶部写死路径最稳妥:
set "NVM_DIR=D:\nvm-setup\nvm"切换后 node -v 还是旧版本?
NVM 通过改写 NVM_SYMLINK(通常是 D:\nodejs)这个目录链接来切换版本,已打开的终端不会重新读取。关掉当前窗口、新开一个命令行再验证即可。
UAC 弹窗能不能关掉?
可以,把 AUTO_ELEVATE 改成 0。但 nvm use 需要管理员权限重建目录链接,非管理员下切换大概率失败。建议保留自动提权。
没有 PowerShell 能用吗?
能。脚本优先用 PowerShell 做版本排序,若不可用会自动退回纯批处理扫描(只是不排序,功能不受影响)。
本项目基于 MIT License 开源。
Made with ❤️ by Je-taimais · English