You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Powershell中无需前置`node`命令直接执行Node.js文件

无需添加node前缀直接执行Node.js脚本的操作方法

前提验证

先确认Node.js已加入系统PATH:打开任意Powershell窗口执行node -v,能正常输出版本号即为符合要求,若未输出需先将Node.js安装路径加入系统环境变量PATH。

永久配置方案(全局生效,推荐)

一次配置后所有.mjs/.js文件都支持直接运行,操作步骤如下:

  • 打开管理员权限的Powershell窗口,执行以下命令绑定Node.js程序标识,注意替换命令中的node.exe路径为你本地的实际安装路径(默认安装路径为C:\Program Files\nodejs\node.exe,若使用nvm等版本管理工具安装需对应修改路径):
    ftype NodeJS.File="C:\Program Files\nodejs\node.exe" "%1" %*
    
  • 执行命令关联对应后缀到Node.js标识,如果你需要.js和.mjs都支持直接执行,两条命令都运行即可:
    # 关联.mjs后缀
    assoc .mjs=NodeJS.File
    # 可选:关联.js后缀
    assoc .js=NodeJS.File
    
  • (可选)配置PATHEXT环境变量,实现无需输入后缀即可执行:
    右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量中找到PATHEXT,编辑添加.MJS;.JS,保存后关闭所有设置窗口。
  • 重启所有Powershell窗口生效,之后就可以直接输入.\script.mjs执行脚本,传递参数也和原来加node前缀时完全一致,示例:.\script.mjs --param1 test --param2 123。

临时配置方案(仅当前Powershell会话生效)

如果不想修改全局系统配置,可以在当前需要使用的Powershell窗口中执行以下命令,配置完成后当前窗口即可直接运行.mjs文件,关闭窗口后配置自动失效:

$env:PATHEXT += ";.MJS"
Register-ObjectEvent -InputObject $ExecutionContext.SessionState.InvokeCommand -EventName CommandNotFound -Action {
  param($sender, $e)
  if ($e.CommandName -match '\.mjs$') {
    $path = Resolve-Path $e.CommandName -ErrorAction SilentlyContinue
    if ($path) {
      $e.CommandLookupEventArgs.CommandScript = {
        & node $path @args
      }.GetNewClosure()
    }
  }
} | Out-Null

内容的提问来源于stack exchange,提问作者Fred Hors

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:09:03