首页 > 解决方案 > 使 Powershell CLI(环境)变量在 PHP 中可用

问题描述

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

通常在 Linux 系统中export SOMETHING=foo可以工作,在 Windows 中 CMDSET SOMETHING=bar也可以。但我也不知道如何使用 Powershell CLI(不是脚本)来完成这项工作。

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

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

标签: phpwindowspowershellvariablesenvironment-variables

解决方案


有几种方法可以在 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 会话)。

编辑:

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

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

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


推荐阅读