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



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

通常,在Linux系统中,export SOMETHING=foo可以工作,而在Windows CMD中,SET SOMETHING=bar也可以工作。但是我不知道如何使它与Powershell CLI(不是脚本)一起工作。

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

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

有几种方法可以在 PowerShell 中创建环境变量。区分PowerShell变量(例如$myVar) 和环境变量,因为您可能从旧的命令提示符中知道它们(例如在 cmdSET MYVAR=MYVAL中)。

若要在 PowerShell 中创建环境变量,最简单的方法是在环境中创建新项 (Env):

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

您发布的代码示例

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

创建一个PowerShell变量,但编写$Name = "value"更容易。

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

编辑:

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

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

这是通过PowerShell在您自己的范围之外操作环境变量的唯一方法。使用EnvironmentVariableTarget您可以选择操作变量的位置。请注意,您可能需要更高的权限才能操作这些内容。

最新更新