PureBasic
C:\Program Files\PureBasic\SDK\CompilerInterface.txt contains information on how to control PureBasic from another program, via STDIN.
Standby.ps1
$psi = New-Object System.Diagnostics.ProcessStartInfo
$psi.FileName = "C:\Program Files\PureBasic\Compilers\pbcompiler.exe"
$psi.Arguments = "/standby"
$psi.UseShellExecute = $false
$psi.RedirectStandardInput = $true
$p = [System.Diagnostics.Process]::Start($psi)
Start-Sleep -s 2
#$p.StandardInput.WriteLine("END")
From TCC;
[E:\Utils]pshell /s ". .\Standby.ps1"
STARTING 6.00 PureBasic 6.00 LTS (Windows - x64)
READY
[E:\Utils]tlm pbc*
10584 20996096 pbcompiler "C:\Program Files\PureBasic\Compilers\pbcompiler.exe" /standby
Total of 1 processes
[E:\Utils]pshell /s "$p.StandardInput.WriteLine('END')"
[E:\Utils]tlm pbc*
Total of 0 processes
From CompilerInterface.txt, here are some (not all) of the other commands that can be sent via STDIN;
END
SOURCE<T><SourceFile>
SOURCEALIAS<T><SouceFile Alias>
INCLUDEPATH<T><Path>
TARGET<T><TargetFile>
LINKER<T><LinkerCommandFile>
COMPILE<T><FlagsList>
FUNCTIONLIST