Хобрук: Ваш путь к мастерству в программировании

Отправка команд в командную строку Windows (cmd) из PHP

Это возможно?

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

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

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

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


Ответы:


1

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

15.12.2010

2

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

15.12.2010

3

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

$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], который не мог сделать никаким другим методом.

15.12.2010

4

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

01.11.2016
Новые материалы

Создание успешной организации по науке о данных
"Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

Технологии и проблемы будущей работы
Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

Игорь Минар из Google приедет на #ReactiveConf2017
Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...