Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖥️ NVM-Windows Menu

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

About

Windows 下 NVM 的 Node 版本菜单切换工具 —— 输入编号即可切换 Node 版本,自动提权、自动扫描已安装版本。 / A menu-driven Node version switcher for NVM-Windows: pick a number, auto-elevate, auto-scan installed versions.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages