Сделать переменные Powershell CLI (окружения) доступными в PHP - PullRequest
0 голосов
/ 14 мая 2019

Я хочу иметь возможность доступа к переменным окружения, установленным в Powershell, из моего скрипта PHP.

Обычно в системах Linux export SOMETHING=foo будет работать, а в Windows CMD SET SOMETHING=bar также будет работать.Но я не знаю, как заставить это работать с Powershell CLI (не сценарием).

Я пытался использовать Set-Variable -Name "SOMETHING" -Value "foo", но это не было прочитано PHP.

В моем PHP-скрипте я просто хочу использовать getenv('SOMETHING');.

1 Ответ

1 голос
/ 14 мая 2019

Существует несколько способов создания переменных среды в PowerShell. Важно различать переменные PowerShell (например, $myVar) и переменные среды , как вы их знаете из старой доброй командной строки (например, в cmd SET MYVAR=MYVAL).

Чтобы создать переменную окружения в PowerShell, проще всего создать новый элемент в среде (Env):

New-Item Env:/VarName -Value "Foo"

Пример кода, который вы разместили

Set-Variable -Name "Name" -Value "value"

создает переменную PowerShell , но проще написать $Name = "value".

Переменные PowerShell видны только в вашей области видимости PowerShell. Переменные среды могут быть прочитаны любой программой, которую вы запускаете как подпроцесс в текущей среде (например, сеанс PowerShell).

EDIT:

Интересен пример, размещенный в комментариях @ f64a :

[environment]::SetEnvironmentVariable("myName", "myValue",[System.EnvironmentVariableTarget]::Machine)

Это единственный способ манипулировать переменными среды через PowerShell вне вашей собственной области. С помощью EnvironmentVariableTarget вы можете выбрать, где будет обрабатываться ваша переменная. Имейте в виду, что для манипулирования ими вам могут потребоваться более высокие привилегии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...