【问题标题】:Reading connection string from Environment variable using Powershell使用 Powershell 从环境变量中读取连接字符串
【发布时间】:2016-01-21 01:07:25
【问题描述】:

我有asp.net mvc应用程序,数据库连接字符串放在环境变量DbConn as

Min Pool Size=20;Application Name=***;**initial catalog=*****;server=***;Integrated Security=True;

现在我的问题是如何使用 Powershell 脚本读取此连接字符串。我知道如何读取整个连接字符串Get-ChildItem Env:DBConn,但我需要其中的一部分,例如初始目录、服务器等。

请指导我解决这个问题。

【问题讨论】:

  • 得到有效答案后删除?那是什么?

标签: asp.net-mvc powershell environment-variables


【解决方案1】:

您可以使用 -splitTrim() 和哈希表解析和标记连接字符串:

$DBConnValues = @{}
$env:DBConn.Trim(";") -split ";" |ForEach-Object { 
    $key,$value = $_ -split "="
    $DBConnValues[$key] = $value
}

现在您可以按名称访问每个属性:

PS C:\> $DBConnValues["Server"]
ServerName

【讨论】:

    【解决方案2】:

    这对于ConvertFrom-StringData 来说是一个完美的案例,这样您就可以将它变成一个自定义对象。

    $props = $env:DBConn -replace ";","`r`n" | ConvertFrom-StringData
    $dbConn = New-Object -TypeName psobject -Property $props
    

    ConvertFrom-StringData 想要一个字符串,其中每一行都是一个键值对。我们通过用换行符替换分号来实现这一点。它返回一个哈希表,我们将其提供给 New-object 以获取自定义 PowerShell 对象。然后,您可以像在 PowerShell 中一样使用新对象。

    $dbConn."Min Pool Size"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 2012-09-07
      相关资源
      最近更新 更多