【问题标题】:Make Powershell CLI (environment) variables available in PHP使 Powershell CLI(环境)变量在 PHP 中可用
【发布时间】:2019-10-01 10:03:45
【问题描述】:

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

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

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

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

【问题讨论】:

  • [环境]::SetEnvironmentVariable("myName", "myValue", [System.EnvironmentVariableTarget]::Machine)
  • New-Item Env:/SOMETHING -Value "foo"
  • @Clijsters 您的解决方案有效!您可以将其发布为答案,我会接受。

标签: php windows powershell variables environment-variables


【解决方案1】:

有多种方法可以在 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 在 cmets 中发布的示例也很有趣:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 2015-07-05
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    相关资源
    最近更新 更多