Untuk seseorang yang masih berjuang dengan itu di tahun 2020 dan Visual Studio Code 1.41.1, jadi sedikit keluar dari topik di sini.
Menggunakan semua bagian kode yang berbeda dari atas dan Internet misalnya dari https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell dan dengan pendekatan langkah demi langkah saya berhasil memiliki skrip di bawah ini berfungsi.
Disimpan ke VSCode "settings.json" dan dengan ekstensi Code Runner diinstal.
Dengan Microsoft (R) C / C ++ Optimizing Compiler Version "cl.exe" dari Visual Studio 2015 / 14.0:
"code-runner.runInTerminal": true,
"code-runner.executorMap": {
"cpp": "cd $dir; pushd \"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\"; cmd.exe /c \"call vcvarsall.bat x86_amd64 & set > %temp%\\vcvars.txt\"; Get-Content \"$env:temp\\vcvars.txt\" | Foreach-Object { if ($_ -match \"^(.*?)=(.*)$\") { Set-Content \"env:\\$($matches[1])\" $matches[2] }}; popd; cls; cl *.cpp; .\\\"$fileNameWithoutExt.exe\"; Write-Host -NoNewLine 'Press any key to continue...'; $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown'); del \"$fileNameWithoutExt.exe\"; del \"$fileNameWithoutExt.obj\""}
Dengan Microsoft (R) C / C ++ Mengoptimalkan Versi Kompilator "cl.exe" dari Visual Studio 2019 / 16.4.3:
"code-runner.runInTerminal": true,
"code-runner.executorMap": {
"cpp": "cd $dir; pushd \"c:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\"; cmd.exe /c \"call vcvarsall.bat x86_amd64 & set > %temp%\\vcvars.txt\"; Get-Content \"$env:temp\\vcvars.txt\" | Foreach-Object { if ($_ -match \"^(.*?)=(.*)$\") { Set-Content \"env:\\$($matches[1])\" $matches[2] }}; popd; cls; cl *.cpp; .\\\"$fileNameWithoutExt.exe\"; Write-Host -NoNewLine 'Press any key to continue...'; $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown'); del \"$fileNameWithoutExt.exe\"; del \"$fileNameWithoutExt.obj\""}
HTH