diff --git a/src/vs/workbench/api/electron-browser/mainThreadTask.ts b/src/vs/workbench/api/electron-browser/mainThreadTask.ts index 61d5a6336216e..369a084b5f299 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadTask.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadTask.ts @@ -528,7 +528,7 @@ export class MainThreadTask implements MainThreadTaskShape { process: undefined as string, variables: new Map() }; - Object.keys(values.variables).forEach(key => result.variables.set(key, values[key])); + Object.keys(values.variables).forEach(key => result.variables.set(key, values.variables[key])); if (Types.isString(values.process)) { result.process = values.process; } diff --git a/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts b/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts index 647915a827308..12be79d0926fc 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts @@ -380,7 +380,12 @@ export class TerminalTaskSystem implements ITaskSystem { resolveSet.process.path = envPath; } } - resolvedVariables = taskSystemInfo.resolveVariables(workspaceFolder, resolveSet); + resolvedVariables = taskSystemInfo.resolveVariables(workspaceFolder, resolveSet).then(resolved => { + if ((taskSystemInfo.platform !== Platform.Platform.Windows) && isProcess) { + resolved.variables.set(TerminalTaskSystem.ProcessVarName, CommandString.value(task.command.name)); + } + return Promise.resolve(resolved); + }); } else { let result = new Map(); variables.forEach(variable => {