Visual studio code VSCode:找不到任务中的环境变量
我试图在VSCode中的tasks.json中定义自己的环境变量。根据迄今为止我找到的每个链接,我尝试了以下方法:Visual studio code VSCode:找不到任务中的环境变量,visual-studio-code,vscode-tasks,Visual Studio Code,Vscode Tasks,我试图在VSCode中的tasks.json中定义自己的环境变量。根据迄今为止我找到的每个链接,我尝试了以下方法: { "version": "2.0.0", "type": "shell", "options": { "env": { "APP_NAME": "myApp" } }, "problemMatcher": { "owner": "cpp", "fileLocation": [ "relative",
{
"version": "2.0.0",
"type": "shell",
"options": {
"env": {
"APP_NAME": "myApp"
}
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false
},
"tasks": [
{
"label": "Build Release",
"command": "python ./scripts/build_app.py $APP_NAME",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
我之所以需要它,是因为我们正在通过python脚本运行构建过程,因此我需要为它提供我想要构建的应用程序的名称。由于我还有用于测试、执行、调试等的python脚本,所以我更愿意在tasks.json中只更改一次应用程序名称,而不是在每个任务本身中
根据指导原则,这应该以我的方式实现,但在powershell控制台中,$APP_NAME变量未被替换。而且无论是在cmd还是bashshell中,它似乎都不起作用
如果有人能给我任何帮助,我将不胜感激。如果您使用的是powershell,请使用
%VAR%
而不是$VAR
"command": "python ./scripts/build_app.py %APP_NAME%",
在您的案例中使用
$env:APP_NAME
。看
环境变量
您还可以通过${env:Name}
语法(例如,${env:PATH}
)
注意:请确保与环境变量名称的大小写匹配,例如
Windows上的示例${env:Path}
由于一个特定原因,您的用法不正确 tasks.json
options
对象中使用的环境变量不能在tasks其他属性中引用,特别是在OPs情况下的command
:
选项:覆盖cwd(当前工作目录)的默认值,
env(环境变量)或shell(默认shell)。选项可以是
按任务设置,但也可按全局或平台设置。环境变量
此处配置的只能从任务脚本中引用,或
如果它们是args的一部分,则不会解决,
命令或其他任务属性
尝试删除对
/scripts/build_app.py
脚本中第一个参数的引用,将其作为$app_NAME
的值,改为在/scripts/build_app.py
脚本中从内部使用os.environ['app_NAME']
。tasks.json中设置的环境变量不会被{env:}拾取tasks.json中的
,当它们作为shell参数提供时,也不会被替换。但是,您可以在settings.json
中添加自定义设置,并使用${config:…}
引用tasks.json
中的设置
e、 g。
settings.json
:
{
"APP_NAME": "myApp",
}
{
"version": "2.0.0",
"type": "shell",
"options": {
"env": {
"APP_NAME": "${config:APP_NAME}"
}
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false
},
"tasks": [
{
"label": "Build Release",
"command": "python ./scripts/build_app.py ${config:APP_NAME}",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
tasks.json
:
{
"APP_NAME": "myApp",
}
{
"version": "2.0.0",
"type": "shell",
"options": {
"env": {
"APP_NAME": "${config:APP_NAME}"
}
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false
},
"tasks": [
{
"label": "Build Release",
"command": "python ./scripts/build_app.py ${config:APP_NAME}",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
谢谢你的快速回复。不幸的是,我已经试过了,但也不起作用(至少在powershell中)