Visual Studio Code 任务使用和设置说明
关注 1800
如何创建运行 VSCode 任务视频演示 YouTube如何创建运行 VSCode 任务视频演示 Bilibili
Visual Studio Code 任务
Visual Studio Code(VSCode)任务允许你配置和运行特定的命令、脚本或应用程序,以完成特定的开发任务。例如,你可以设置一个任务来运行 Windows 命令提示符中的命令,用于复制文件或执行批处理文件。
在 Visual Studio Code 中创建自定义任务
要创建自定义任务,可以通过以下两种方式。通过菜单项终端 | 配置任务…,或运行 VSCode 命令Tasks: Configure Task。
在配置任务时,VSCode 会显示一个面板,并提供一些选项。如果点击使用模板创建 tasks.json 文件,然后选择Others选项,那么将创建一个简单的执行命令的任务echo,用于显示信息。
完成任务的配置后,VSCode 会在工作区文件夹的.vscode目录中创建tasks.json文件,该文件包含所有自定义任务的信息。
选择任务检测或其他模板
如果你使用了其他的工具(比如,gulp),那么 VSCode 还会针对性的提供相应的检测功能。这将根据已经编写的代码,来创建任务。
此外,一些模板,比如MSBuild、.Net Core,可创建专门用于执行 msbuild 或 dotnet 命令的任务。
配置任务操作没有反应
请注意,如果执行配置任务操作没有反应,可能是因为tasks.json文件已经存在。
运行 Visual Studio Code 自定义任务
任务创建后,可通过以下方式运行。使用菜单项终端 | 运行任务…,或运行 VSCode 命令Tasks: Run Task。
选择之前创建的任务echo,点击继续而不扫描任务输出,即可在终端面板中看到输出结果Hello。
Visual Studio Code 任务文件 tasks.json
当需要修改现有任务或添加新任务时,可以直接编辑.vscode目录中tasks.json文件。该文件的tasks属性是包含任务的数组,每个任务对应一个对象。要创建新任务,只需在该数组中添加新的任务对象即可。
对于任务对象,一般拥有以下属性。
- label 属性
label属性为任务的名称,显示在选择面板中。- detail 属性
detail属性为任务的详细说明,用于提供更多上下文信息。- icon 属性
icon属性是一个表示任务图标的对象,该对象的属性id为图标形状,属性color为图标颜色。- group 属性
group属性表示任务所在的执行组,有效值如下:build为生成任务,test为测试任务,none表示任务不属于任何组。- type 属性
type属性为任务的类型,有效值如下:process表示任务为进程,shell表示任务是一个命令。- command 属性
command属性与任务的类型(type属性)有关,可以包含 VSCode 变量。如果任务为进程,那么
command属性是指向可执行目标的路径(绝对或相对路径,如果使用相对路径,则默认相对于 VSCode 工作区目录)。如果任务为命令,那么command属性是需要在 VSCode 终端中执行的命令。- hide 属性
如果
hide属性为true,那么任务不会出现在任务选择面板中(默认显示)。
{
"version": "2.0.0",
"tasks": [
{
// 任务名称
"label": "My task",
// 任务说明
"detail": "This is a test task",
// 任务图标
"icon": {
"id": "alert",
"color": "terminal.ansiCyan",
},
// 任务不在任何执行组中
"group": "none",
// 执行工作区根目录下的 test.bat
"type": "process",
"command": "${workspaceFolder}\\test.bat",
// 不在任务选择面板中隐藏任务
"hide": false,
},
]
}设置 Visual Studio Code 任务的当前工作目录
如果你希望为任务设置当前工作目录,那么只需在tasks.json文件中,为任务对象增加options属性,该属性是一个对象,其cwd属性即为任务的当前工作目录。
设置不存在的工作目录
如果将工作目录设置为不存在的路径,那么任务可能会执行失败。
下面的任务,将执行批处理文件Z:\code\test.bat。
{
"version": "2.0.0",
"tasks": [
{
"label": "My Task 2",
"type": "process",
"command": "test.bat",
"options": {
"cwd": "Z:\\code\\"
}
},
]
}设置默认的 Visual Studio Code 任务
如何为 VSCode 任务绑定键盘快捷键,以及设置默认任务视频演示 YouTube如何为 VSCode 任务绑定键盘快捷键,以及设置默认任务视频演示 Bilibili
使用菜单项终端 | 配置默认生成任务…或执行 VSCode 命令Tasks: Configure Default Build Task,从面板中选择一个任务,即可将该任务设置为默认生成任务。
执行 VSCode 命令Tasks: Configure Default Test Task,从面板中选择一个任务,即可将该任务设置为默认测试任务。
以上两种方式,相当于将工作对象的group属性,设置为包含kind和isDefault属性的对象。其中,kind属性为build(生成任务)或test(测试任务),isDefault属性为true(表示该任务为默认任务)。
一旦设置了默认生成任务,就可以使用键盘快捷方式Ctrl+Shift+B,或命令Tasks: Run Build Task来快速执行默认生成任务。一旦设置了默认测试任务,就可以命令Tasks: Run Test Task来快速执行默认测试任务。
当有多个默认任务时
如果多个任务都被设为默认任务,则运行时可能仍需手动选择。
为 Visual Studio Code 任务绑定键盘快捷方式
如何为 VSCode 任务绑定键盘快捷键,以及设置默认任务视频演示 YouTube如何为 VSCode 任务绑定键盘快捷键,以及设置默认任务视频演示 Bilibili
除了默认生成任务,你还可以为其他任务绑定键盘快捷方式。首先,按下Ctrl+K Ctrl+S打开键盘快捷键面板。然后,切换到 JSON 编辑模式(点击右上角图标),在keybindings.json中添加一个对象,用于绑定某个任务,该对象的属性如下。
- key 属性
key属性是与任务绑定的键盘快捷方式。- command 属性
command属性应该设置为workbench.action.tasks.runTask,表示键盘快捷方式将执行任务。- args 属性
args属性为需要运行的任务的名称。
在下面的示例中,为任务echo指定了键盘快捷方式Ctrl+T Ctrl+E。
[
{
"key": "ctrl+t ctrl+e",
"command": "workbench.action.tasks.runTask",
"args": "echo",
},
]除了绑定特定任务,你还可以为常用的与任务相关的命令,设置键盘快捷方式。
[
{
"key": "ctrl+shift+t",
// 选择并运行任务
"command": "workbench.action.tasks.runTask",
},
{
"key": "ctrl+shift+r",
// 运行上一次运行的任务
"command": "workbench.action.tasks.reRunTask",
},
]为 Visual Studio Code 任务设置参数
如何为 VSCode 任务配置参数和环境变量视频演示 YouTube如何为 VSCode 任务配置参数和环境变量视频演示 Bilibili
当任务类型为shell时,可直接将完整命令和参数作为一个字符串,写入属性command中,或者将命令和参数组成一个数组作为command属性的值。当然,为了提高可读性和维护性,也可使用args属性(数组)单独包含参数。
当任务类型为process时,必须使用args属性(数组)来传递参数。
下面的示例,任务withargs1和withargs2均显示信息Hello World,任务withargs3显示目录Z:\下的内容,任务withargs4将参数Jack和12传递给批处理文件show.bat(位于 VSCode 工作区根目录)。
{
"label": "withargs1",
"type": "shell",
"command": "Write-Output 'Hello World'",
},
{
"label": "withargs2",
"type": "shell",
"command": "Write-Output",
"args": ["Hello World"],
},
{
"label": "withargs3",
"type": "shell",
"command": [
"Get-ChildItem",
"-Path Z:\\",
],
},
{
"label": "withargs4",
"type": "process",
"command": "show.bat",
"args": [
"Jack",
"12"
]
},echo %1's age is %2REM 任务 withargs4 的运行结果
Jack's age is 12为 Visual Studio Code 任务设置环境变量
如何为 VSCode 任务配置参数和环境变量视频演示 YouTube如何为 VSCode 任务配置参数和环境变量视频演示 Bilibili
如果希望为任务设置环境变量,那么可为tasks.json文件中的任务对象增加options属性,该属性的env属性是包含环境变量的对象(对象的属性名称为环境变量的名称,对象的值为环境变量的值),可以包含 VSCode 变量。
下面的示例,任务today将显示环境变量TODAY,此变量已经被设置为了2025-5-24。
{
"label": "today",
"type": "shell",
"command": "$env:TODAY",
"options": {
"env": {
"TODAY": "2025-5-24"
}
}
},2025-5-24一次执行多个 Visual Studio Code 任务
如何一次运行多个 VSCode 任务,以及设置运行顺序视频演示 YouTube如何一次运行多个 VSCode 任务,以及设置运行顺序视频演示 Bilibili
如果你希望一次执行多个任务,那么可以为文件tasks.json的任务对象,添加dependsOn属性,该属性是一个数组,包含当前任务(当前任务本身不需要设置command和type属性)所依赖的所有任务名称。
此外,使用任务对象的dependsOrder属性,可以控制依赖任务的执行顺序。该属性可以取以下有效值:parallel(默认值)表示并行执行所有依赖任务,sequence表示按依赖任务的出现顺序执行。
下面的示例,任务withargs1和withargs2将依次执行。
{
"label": "multi",
"dependsOn": [
"withargs1",
"withargs2"
],
"dependsOrder": "sequence",
},源码
tasks.json·codebeatme/vscode·GitHub
keybindings.json·codebeatme/vscode·GitHub
show.bat·codebeatme/vscode·GitHub
讲解视频
如何创建运行 VSCode 任务·YouTube如何创建运行 VSCode 任务·Bilibili
如何为 VSCode 任务绑定键盘快捷键,以及设置默认任务·YouTube如何为 VSCode 任务绑定键盘快捷键,以及设置默认任务·Bilibili
如何为 VSCode 任务配置参数和环境变量·YouTube如何为 VSCode 任务配置参数和环境变量·Bilibili
如何一次运行多个 VSCode 任务,以及设置运行顺序·YouTube如何一次运行多个 VSCode 任务,以及设置运行顺序·Bilibili