使Powershell CLI(环境)变量在PHP中可用

时间:2019-05-14 11:29:26

标签: php windows powershell variables environment-variables

我希望能够从我的PHP脚本中访问Powershell中设置的环境变量。

通常在Linux系统中export SOMETHING=foo可以工作,而在Windows CMD SET SOMETHING=bar中也可以工作。但是我也不知道如何通过Powershell CLI(不是脚本)来实现这一功能。

我尝试使用Set-Variable -Name "SOMETHING" -Value "foo",但是PHP并没有读取。

在我的PHP脚本中,我只想使用getenv('SOMETHING');

1 个答案:

答案 0 :(得分:1)

有几种方法可以在PowerShell中创建环境变量。重要的是要区分 PowerShell变量(例如$myVar)和环境变量,因为您可能会从旧的命令提示符(例如cmd {{ 1}})。

要在PowerShell中创建 environment 变量,最简单的方法是在环境(SET MYVAR=MYVAL)中创建新项:

Env

您发布的代码示例

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

创建一个 PowerShell变量,但是只需编写Set-Variable -Name "Name" -Value "value" 即可。

PowerShell变量仅在您的PowerShell范围中可见。在当前环境(例如PowerShell会话)中作为子进程启动的任何程序都可以读取环境变量。

编辑:

@f64a在评论中发布的示例也很有趣:

$Name = "value"

这是afaik在您自己的范围之外通过PowerShell操纵环境变量的唯一方法。使用EnvironmentVariableTarget,您可以选择在哪里操作变量。请注意,您可能需要更高的特权才能进行操作。