如何创建 VS Code 的任务来执行当前文件,并将其文件夹设置为当前工作目录?

How to create a VS Code's task to execute the current file, setting also its folder as the current working directory?

我正在同时试验许多小项目,在根文件夹中打开一个 VS Code window。

它们可以是 JS 项目或 Python 项目,或其他可通过终端命令运行的项目。

我想创建一个 VS Code 任务

1) 在当前打开并获得焦点的文件上启动程序;

2) 将当前工作目录设置为该文件的目录。

那必须是动态发生的,也就是说,我不想每次启动不同的文件时都手动设置当前文件和当前工作目录。

我怎样才能做到这一点?

您可以在 tasks.json 文件中使用变量 ${fileDirname}${file}

假设您正在试验 Python。

这里有两个解决方案:

"tasks": [
    {
        "label": "start",
        "type": "shell",
        "command": "python3 ${file}",
        "options": {
            "cwd": "${fileDirname}"
        }
        "problemMatcher": []
    }
]

"tasks": [
    {
        "label": "start",
        "type": "shell",
        "command": "cd ${fileDirname} && python3 ${file}",
        "problemMatcher": []
    }
]