Вот проект, который позволяет PHP динамически получать и взаимодействовать с реальным терминалом cmd.Получите это здесь: https://github.com/merlinthemagic/MTS
После загрузки вы просто используете следующий код:
//if you prefer Powershell, replace 'cmd' with 'powershell'
$shellObj = \MTS\Factories::getDevices()->getLocalHost()->getShell('cmd');
$strCmd1 = 'O:\\test\\pdftk.exe O:\\test\\outputs\\OPP\\out.pdf O:\\test\\outputs\\OPP\\out2.pdf cat output O:\\test\\123.pdf';
$return1 = $shellObj->exeCmd($strCmd1);
В результате вы получите команду возврата ИЛИ ошибку из cmd, как если бы вы сиделина консоли.Кроме того, вы можете выполнить любую команду, которая вам нравится, в отношении $ shellObj, среда поддерживается в течение всего срока действия сценария PHP.Поэтому вместо объединения команд в файле сценария просто выполните их одну за другой, используя метод exeCmd (), таким образом, вы также можете обрабатывать возврат и любые исключения.