我希望能够从我的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
您可以选择操作变量的位置。请注意,您可能需要更高的权限才能操作这些内容。