The terminal process terminated with exit code: 1

29,846

Solution 1

I had the same problem as you (I use windows 10).

Try the following:

  1. If your computer is running powershell, turn it off.
  2. Control Panel -> Programs -> Turn Windows features on or off
  3. Search Window Powershell 2.0 -> Uncheckbox -> OK
  4. Restart

enter image description here

I hope this could help you

Solution 2

I had this issue because I accidentally deleted tsconfig.json

Share:
29,846
BlueChap
Author by

BlueChap

Updated on June 14, 2021

Comments

  • BlueChap
    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
    BlueChap almost 5 years
    Thank 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
    BlueChap almost 5 years
    My 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
    BlueChap almost 5 years
    I 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
    BlueChap almost 5 years
    Unfortunately 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?