Установка переменных среды в PHP для дальнейшего использования в пакетной команде Windows - PullRequest
1 голос
/ 22 марта 2011

История такая:

  • После запуска тестовой кампании JUnit я запустить скрипт php, чтобы получить переменные $ testsOK и $ testsFailed.

  • В том же PHP-скрипте я должен добавить в переменные окружения «OK» и «Неудачные» числа, которые я получил только раньше в том же сценарии. я использовал putenv, $ _ENV ["OK"] = ... даже apache_setenv ("ОК", $ testsOK), который конечно не работает так как я нет веб-сервера, я использую только PHP CLI.

  • Мне придется использовать эти переменные окружения "OK" и "FAILED" в Пакетная команда Windows после скрипт был запущен.

На странице putenv на php.net (http://php.net/manual/en/function.putenv.php) кто-то говорит, что: "putenv / getenv, $ _ENV и phpinfo (INFO_ENVIRONMENT) - это три совершенно разных хранилища среды. выполнение putenv (" x = y ") не влияет на $ _ENV; но также делает $ _ENV [" x "] =" y "аналогично не влияет на getenv ("x"). И не влияет на то, что возвращается в phpinfo (). "

Следовательно, ни один из этих методов не поможет мне. Мой вопрос: я должен отказаться от этого метода и попробовать с другим языком? :-) или есть способ, по которому я скучаю.

Я был бы очень признателен за вашу помощь. Анка

1 Ответ

1 голос
/ 22 марта 2011

Вы можете заключить вызов в скрипт, PHP вернёт через stdout значения, которые будут установлены;скрипт затем запишет этот вывод в соответствующие переменные окружения.

Очень упрощенная версия будет выглядеть примерно так:

@echo off
runtestcampaign
for /f %%a in ('php myscript.php') do (
  set OK=%%a
  set Fail=%%b
)
restofbat 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...