The terminal process terminated with exit code: 1
Solution 1
I had the same problem as you (I use windows 10).
Try the following:
- If your computer is running powershell, turn it off.
- Control Panel -> Programs -> Turn Windows features on or off
- Search Window Powershell 2.0 -> Uncheckbox -> OK
- Restart
I hope this could help you
Solution 2
I had this issue because I accidentally deleted tsconfig.json
BlueChap
Updated on June 14, 2021Comments
-
BlueChap almost 3 years
I want to use the Visual Studio Code IDE ("VSC") to develop in MQL (rather than in the native MetaEditor IDE) as described here: How to code & compile MQL5 in Visual Studio.
My question refers to the compiling process, which consists of a VSC-task that calls a PowerShell script which invokes MetaEditor.exe to perform the actual compiling.
Everything works fine when I run the PowerShell script directly (by selecting its code and hitting F8), but when I try to run it via the designated VSC-task I get the error
The terminal process terminated with exit code: 1
(before I chose PowerShell as the default shell as described in the linked description).
This is the PowerShell script (which works with F8):
#gets the File To Compile as an external parameter... Defaults to a Test file... Param($FileToCompile = "C:\Users\Username\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\Advisors\ExpertMACD.mq5") #cleans the terminal screen and sets the log file name... Clear-Host $LogFile = $FileToCompile + ".log" & "C:\Users\Username\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\compile.bat" "C:\Program Files\MetaTrader 5\metaeditor64.exe" "$FileToCompile" "$LogFile" "C:\Users\Username\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5" #before continue check if the Compile File has any spaces in it... if ($FileToCompile.Contains(" ")) { "";""; Write-Host "ERROR! Impossible to Compile! Your Filename or Path contains SPACES!" -ForegroundColor Red; ""; Write-Host $FileToCompile -ForegroundColor Red; "";""; return; } #first of all, kill MT Terminal (if running)... otherwise it will not see the new compiled version of the code... Get-Process -Name terminal64 -ErrorAction SilentlyContinue | Where-Object {$_.Id -gt 0} | Stop-Process #fires up the Metaeditor compiler... & "C:\Program Files\MetaTrader 5\metaeditor64.exe" /compile:"$FileToCompile" /log:"$LogFile" /inc:"C:\Users\Username\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5" | Out-Null #get some clean real state and tells the user what is being compiled (just the file name, no path)... "";"";"";"";"" $JustTheFileName = Split-Path $FileToCompile -Leaf Write-Host "Compiling........: $JustTheFileName" "" #reads the log file. Eliminates the blank lines. Skip the first line because it is useless. $Log = Get-Content -Path $LogFile | Where-Object {$_ -ne ""} | Select-Object -Skip 1 #Green color for successful Compilation. Otherwise (error/warning), Red! $WhichColor = "Red" $Log | ForEach-Object { if ($_.Contains("0 error(s), 0 warning(s)")) { $WhichColor="Green" } } #runs through all the log lines... $Log | ForEach-Object { #ignores the ": information: error generating code" line when ME was successful if (-not $_.Contains("information:")) { #common log line... just print it... Write-Host $_ -ForegroundColor $WhichColor } } #get the MT Terminal back if all went well... if ($WhichColor -eq "Green") { & "c:\program files\metatrader 5\terminal64.exe" }
and this is the VSC-task in .json-format that should call the previous PowerShell script (but ends in the abovementioned error):
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "Compile-MQL", "type": "shell", "command": "C:\\Users\\Username\\AppData\\Roaming\\MetaQuotes\\Terminal\\D0E8209F77C8CF37AD8BF550E51FF075\\MQL5\\Compile-MQL.ps1 ${file}", "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": false }, "group": { "kind": "build", "isDefault": true } } ] }
Can somebody please tell me how to get rid of this error?
PS: to reproduce this issue, MetaTrader (which includes the MetaEditor IDE) needs to be downloaded (for free).
-
BlueChap almost 5 yearsThank you, postanote! So to use "[...] Command Palette (CTRL-SHIFT-P) and just type 'Shell'. Then, select the "Terminal: Select Default Shell" option, and then, 'Powershell'." as proposed in the original, linked article (on the very top) can't work, I have to explicitly tell VSC for every single task to use PowerShell instead of the Terminal? I don't know these languages and am a little anxious to mess something up, so I would go for the least invasive option if I can choose...?
-
BlueChap almost 5 yearsMy only relevant adjusted settings are "terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", all other settings are the default ones (only just installed VSC).
-
BlueChap almost 5 yearsI guess the reason behind invoking the .ps1 script by a task is that the task passes the .mq5 to be compiled dynamically rather than having to hard-code its name each time in the .ps1
-
BlueChap almost 5 yearsUnfortunately I know too little json to adapt your solution to my needs, and my json is version 2.0.0 instead of 0.1.0 so I would be very grateful if you (or anybody) could simply adapt my json code sample so that it works out of the box, please?