【问题标题】:How to execute node.js file with Powershell without `node` before the name?如何在名称前不带“node”的Powershell执行node.js文件?
【发布时间】:2021-10-03 08:13:15
【问题描述】:

有没有办法从 Powershell 执行 node.js 文件,而无需在文件名前使用node 调用文件?

例子:

现在我像这样执行它:node .\script.mjs

我想只使用名称执行它:.\script.mjs

怎么做?

【问题讨论】:

  • 预期的输出是什么? script.mjs 是否可执行?
  • 现在我用node 之前的单词执行它。我想直接在 PowerShell 中调用它,就像在 bash 中一样。
  • 不知道能不能帮到你,因为我不熟悉bash。我假设在幕后,您仍然称它为node .\script.mjs,因为如果文件不可执行,会发生什么?可能在您的 linux 环境中,您配置了一些允许您执行此操作的内容(例如 this)。我不知道你是否可以让 PS 做类似“这是一个*.mjs 文件,用node 执行它”之类的东西。我仍然没有看到 node .\script.mjs 的问题。
  • @Vivere,太长了,不能天天写。

标签: node.js powershell powershell-core


【解决方案1】:

您可以注册.mjs文件扩展名,默认使用node.exe打开。然后,您只需提供.mjs 文件的路径即可调用节点。步骤:

  1. 右击任意.mjs文件
  2. 点击打开方式 / 打开方式...
  3. 点击选择另一个应用程序 / 更多应用程序↓>在这台电脑上寻找另一个应用程序
  4. 导航到您的 node.exe 文件
  5. 勾选始终使用此应用打开 .mjs 文件复选框
  6. 确定确认

现在您只需在 CMD 或 PowerShell 中输入.\script.mjs 即可自动使用节点打开文件。

【讨论】:

    【解决方案2】:

    同意@tackprotector,您可以使用cmd.exe 命令行和以下两个工具来做同样的事情:

    Assoc 显示或修改文件扩展名关联。如果不带参数使用,assoc 会显示所有当前文件扩展名关联的列表。如果你输入assoc .txt,它会返回.txt=txtfile

    Ftype 显示或修改用于文件扩展名关联的文件类型。如果不使用赋值运算符 (=),ftype 将显示指定文件类型的当前打开命令字符串。如果不带参数使用,ftype 会显示定义了打开的命令字符串的文件类型。如果你输入ftype textfile,它会返回textfile="%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" "%1"

    因此,如果我输入 assoc .mjs,它会返回与 .mjs 无关的任何内容

    所以我输入(在 cmd 中。以管理员身份):

    assoc .mjs=nodejsfile
    ftype nodejsfile=%ProgramFiles(x86)%\Notepad++\notepad++.exe %1
    

    第一次调用.mjs 文件时,它会询问我是否要使用notepad++ 打开它,然后关联完成。您可以对 node.exe 执行相同操作。

    【讨论】:

      【解决方案3】:

      也许您可以使用vercel/pkg 从该文件创建一个可执行文件,然后可以运行pkg .\script.mjs -t win 以使用pkg 创建一个exe 文件

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-30
        相关资源
        最近更新 更多