Вот проект, который позволяет PHP динамически получать и взаимодействовать с реальным терминалом cmd. Получите это здесь: https://github.com/merlinthemagic/MTS
После загрузки вы просто используете следующий код:
//if you prefer Powershell, replace 'cmd' with 'powershell'
$shellObj = \MTS\Factories::getDevices()->getLocalHost()->getShell('cmd');
$strCmd1 = 'run_app.exe -param "test" -name "tester"';
$return1 = $shellObj->exeCmd($strCmd1);
Возвращение даст вам команду return OR error из cmd, как если бы вы сидели за консолью. Кроме того, вы можете выполнить любую команду, которая вам нравится, в отношении $ shellObj, среда поддерживается в течение всего срока действия сценария PHP. Поэтому вместо объединения команд в файле сценария просто выполните их одну за другой, используя метод exeCmd (), таким образом, вы также можете обрабатывать возврат и любые исключения.