VScode执行任务

背景

  • 在vscode 中 如果执行命令需要传递进来参数,那么直接通过命令行终端的方式不太方便。
  • 通过task 任务的方式来进行启动执行,降低反复输入参数等繁琐工作。

首先可以查看vscode 官方文档

  • task 启动 crtl + shift + p

.vscode/task.json 示例

执行cpp 带参数二进制

复制代码
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Run BIN",
            "type": "shell",  // shell 类型的任务
            "command": "${command:cmake.launchTargetPath}", // CMake 生成的二进制文件路径
            "args": [
                "${workspaceFolder}/config.toml",  // 第一个参数
                "${workspaceFolder}/model.onnx"  // 第二个参数
            ],
            "options": {
                "cwd": "${command:cmake.launchTargetDirectory}"
            },
            "group": {
                "kind": "build", // 此任务的组别
                "isDefault": true // 设为默认任务
            },
            "problemMatcher": [], // 没有特定的错误匹配器
            "presentation": {
                "echo": true, // 在输出面板中回显命令
                "reveal": "always", // 始终在面板中显示
                "focus": false, // 不聚焦到输出面板
                "panel": "new", // 在新面板中显示输出
                "close": false, // 任务完成后关闭输出面板
                "clear": false // 任务启动前清空输出面板
            }

        }
    ]
}

在执行task时,手动输入传参

  • 硬编码方式虽然比较简单粗暴,但是,当使用git来管理的时候,会引入一些没有必要的改变,那么此时就需要将参数,不是使用硬编码,而是去通过启动任务时,动态加载进去。

  • 那就简单介绍几种输入方式

    复制代码
          {  // 简单理解就是输入文本框
              "type": "promptString",
              "id": "outputPath",
              "description": "Please input the output path:",
          },
          { // 简单理解说就是选择框
              "type": "pickString",
              "id": "quantize",
              "description": "use quantize",
              "options": [
                  {
                      "label": "True",
                      "value": "-q"
                  },
                  {
                      "label": "False",
                      "value": ""
                  }
              ],
              "default": ""
          },
  • 详细示例如下

    {
    "version": "2.0.0",
    "inputs":[
    {
    "type": "promptString",
    "id": "outputPath",
    "description": "Please input the output path:",
    },
    {
    "type": "pickString",
    "id": "quantize",
    "description": "use quantize",
    "options": [
    {
    "label": "True",
    "value": "-q"
    },
    {
    "label": "False",
    "value": ""
    }
    ],
    "default": ""
    },
    {
    "type": "pickString",
    "id": "task",
    "description": "task type",
    "options": [
    "weigh",
    "arc"
    ],
    "default": "arc"
    },
    {
    "type": "promptString",
    "id": "config",
    "description": "Please input using configs file",
    },
    {
    "type": "pickString",
    "id": "test_data",
    "description": "juse use test data",
    "options": [
    {
    "label": "True",
    "value": "-b"
    },
    {
    "label": "False",
    "value": ""
    }
    ],
    "default": ""
    },
    {
    "type": "pickString",
    "id": "qat",
    "description": "use keras quantization aware training",
    "options": [
    {
    "label": "True",
    "value": "--qat"
    },
    {
    "label": "False",
    "value": ""
    }
    ],
    "default": ""
    },
    ],
    "tasks": [
    {
    "label": "torch_inf",
    "type": "shell",
    "command": "{command:python.interpreterPath}", "args": [ "{workspaceFolder}/inference_torch.py",
    "-i",
    "{workspaceFolder}/output/{input:task}/{input:outputPath}" ], "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": true }, "problemMatcher": [] }, { "label" : "train", "type": "shell", "command": "{command:python.interpreterPath}",
    "args": [
    "{workspaceFolder}/test.py", "-c", "{workspaceFolder}/configs/{input:config}" ], "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": true, "clear": true }, "problemMatcher": [] }, { "label" : "exprot_tfl", "type": "shell", "command": "{command:python.interpreterPath}",
    "args": [
    "{workspaceFolder}/export2.py", "-i", "{workspaceFolder}/output/{input:task}/{input:outputPath}",
    "${input:quantize}"

    复制代码
              ],
              "presentation": {
                  "echo": true,
                  "reveal": "always",
                  "focus": false,
                  "panel": "shared",
                  "showReuseMessage": true,
                  "clear": true
              },
              "problemMatcher": []
          }
      ]

    }

相关推荐
TOSUN同星1 小时前
干货分享 | TSMaster DBC编辑器操作指南:功能详解+实战示例
数据库·oracle·编辑器·汽车·软件工程
LIN-JUN-WEI2 小时前
[ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
c语言·开发语言·ide·vscode·单片机·学习·编辑器
MUTA️7 小时前
pycharm中本地Docker添加解释器
ide·python·pycharm
Ronin3058 小时前
【Linux系统】vim编辑器 | 编译器gcc/g++ | make/Makefile
linux·运维·服务器·ubuntu·编辑器·vim
织_网9 小时前
Visual Studio Code 中统一配置文件在团队协作中的应用
ide·vscode·编辑器
界面开发小八哥18 小时前
「Java EE开发指南」如何用MyEclipse创建一个WEB项目?(三)
java·ide·java-ee·myeclipse
花花鱼18 小时前
android studio 设置让开发更加的方便,比如可以查看变量的类型,参数的名称等等
android·ide·android studio
雷羿 LexChien20 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
到底起什么网名才能不重名1 天前
使用各种CSS美化网页
前端·css·vscode·bootstrap·html
不知所云,1 天前
3. lvgl 9.3 vscode 模拟环境搭建 lv_port_pc_vscode-release-v9.3
ide·vscode·编辑器·c·sdl·lvgl vscode·lvgl模拟器