如何从 .ps1 脚本读取 .env 文件?

Bae*_*e18 16 powershell environment-variables

我有.env一个像这样的文件:

TESTCASE_GROUP_SIZE=25
. . .
Run Code Online (Sandbox Code Playgroud)

我想将它的值(读取它)放入.ps1脚本中。我该怎么做?

Tes*_*ler 30

get-content test.env | foreach {
    $name, $value = $_.split('=')
    set-content env:\$name $value
}
Run Code Online (Sandbox Code Playgroud)

假设您的意思是“在文件中的每一行设置一个环境变量”。

  • 您可以使用 `$env:TESTCASE_GROUP_SIZE` ,但环境变量实际上是这样您可以启动一个程序并将其继承为环境。如果这不是您正在做的,那么它们可能在哈希表中而不是作为单独的变量更好。 (2认同)
  • 如果你的值中可能有=,你需要向`split()`添加第二个参数,这样它就不会丢弃它们:`$_.split('=',2)` (2认同)

jei*_*iea 14

@TessellationHeckler 的抛光版本,以供将来参考。

Get-Content .env | foreach {
  $name, $value = $_.split('=')
  if ([string]::IsNullOrWhiteSpace($name) || $name.Contains('#')) {
    continue
  }
  Set-Content env:\$name $value
}
Run Code Online (Sandbox Code Playgroud)