Отправка команд в командную строку Windows (cmd) из PHP - PullRequest
0 голосов
/ 15 декабря 2010

Возможно ли это?

Что я хочу сделать, это отправить:

run_app.exe -param 'test' -name 'tester'

на строку Windows cmd из PHP.

Возможно ли это или яНужно написать службу Windows, которая каким-то образом запускается приложением?

Ответы [ 5 ]

1 голос
/ 15 декабря 2010

Для этого можно использовать exec () .

1 голос
/ 15 декабря 2010

Я предлагаю использовать стандартную команду PHP system.На официальном PHP-сайте .

имеется множество информации и примеров. На SO есть ответ на вопрос о различиях между exec(), system() и * 1010.*.

1 голос
/ 15 декабря 2010

Вы пробовали exec?

0 голосов
/ 01 ноября 2016

Вот проект, который позволяет 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 (), таким образом, вы также можете обрабатывать возврат и любые исключения.

0 голосов
/ 15 декабря 2010

Или вы можете использовать:

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run(strCommand, [intWindowStyle], [bWaitOnReturn]);

Здесь вы можете найти параметры метода запуска: http://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.85%29.aspx

А вот документ класса COM: http://www.php.net/manual/en/class.com.php

С помощью этого метода вы можете сделать гораздо больше в Windows :).Я использовал его из-за параметра [bWaitOnReturn], который я не смог сделать никаким другим методом.

...