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