php - 使 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');
.
解决方案
有几种方法可以在 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
您可以选择操作变量的位置。请注意,您可能需要更高的权限来操作这些。
推荐阅读
- javascript - Loopback 3.x - 通过 RoleMapping 的用户角色 M:M 关系
- spring - 使用 Spring SPEL 解析 JSON
- windows - 为 PostgreSQL 和 IIS 配置 PHP
- angular - 如何覆盖 Angular 2 中的 form.valid 设置
- jquery - 如何使用 jQuery 操作 ::before 伪元素?
- java - 一个调用另一个 Rest API 的 Rest API
- javascript - 在新选项卡中打开 pdf,而不是从函数中下载
- c++ - 反转一个字符串。不知道为什么这个逻辑是错误的。C++
- python - 如何在 Python 3.X 上安装 scikits.odes
- c# - 找不到类型或命名空间名称“AdaptiveCards”