如何在 VS 代码中将快捷键设置为 运行 我工作目录中的 .bat 文件?

How can I set a shorcut key in VS code to run a .bat file in my working directory?

在我的研究中,我使用有限元方法,我们使用 Abaqus 的求解器,它使用用 Fortran 制作的子程序,我使用 vs 代码来编辑它们。因此,对于 运行 我的代码,我制作了一个批处理文件,使这个过程更简单(以避免在 cmd 中键入许多指令)。

在这张图片中你可以看到我工作目录中的文件,如果我可以设置一个快捷方式来执行 principal.bat 文件和另一个 terminate.bat 文件,这将节省我很多时间直接来自 vs 代码: 感谢任何帮助,我尝试为此目的设置一个 task.json 文件,但我有点迷路。

您可以添加调试配置,然后使用 F5 启动该配置。
类型 cppvsdbg 在这里并不重要,因为您不能(也不想)调试批处理文件。

Shift-F5 终止批处理

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Start batch",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "cmd.exe",
            "args": [
                "/c",
                "principal.bat"
            ],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false
        }
    ]
}

您可以使用扩展名multi-command在终端输入批处理文件命令

将此添加到您的 settings.json

  "multiCommand.commands": [
    {
      "command": "multiCommand.callPrincipal",
      "sequence": [
        { "command": "workbench.action.terminal.sendSequence",
          "args": { "text": "principle.bat\u000D" }
        }
      ]
    },
    {
      "command": "multiCommand.callTerminate",
      "sequence": [
        { "command": "workbench.action.terminal.sendSequence",
          "args": { "text": "terminate.bat\u000D" }
        }
      ]
    }
  ]

然后在keybindings.json

中定义2个键绑定
  {
    "key": "shift+alt+F1",  // or any other key combo
    "command": "multiCommand.callPrincipal"
  },
  {
    "key": "shift+alt+F2",  // or any other key combo
    "command": "multiCommand.callTerminate"
  }

您可以添加 when 子句来限制键绑定的有效性


编辑

当你只需要 1 个终端命令时不需要使用 multi-command 扩展,你可以定义键绑定的参数

  {
    "key": "shift+alt+F1",  // or any other key combo
    "command": "workbench.action.terminal.sendSequence",
    "args": { "text": "principle.bat\u000D" }
  },
  {
    "key": "shift+alt+F2",  // or any other key combo
    "command": "workbench.action.terminal.sendSequence",
    "args": { "text": "terminate.bat\u000D" }
  }

或者您可以定义 2 个任务来启动批处理文件,然后 运行 使用 Terminal | 运行 任务....

如果您指定一个作为构建任务,您可以使用快捷键。

我找不到 运行 命名任务的命令,因此可以在键绑定中使用它。