我有asp.net mvc应用程序,其中数据库连接字符串放置在环境变量DbConn
Min Pool Size=20;Application Name=***;**initial catalog=*****;server=***;Integrated Security=True;
现在我的问题是如何使用Powershell脚本读取此连接字符串。我知道如何读取整个连接字符串Get-ChildItem Env:DBConn
,但我需要它的一部分,如初始目录,服务器等。
请指导我解决这个问题
您可以使用-split
, Trim()和哈希表解析和标记连接字符串:
$DBConnValues = @{}
$env:DBConn.Trim(";") -split ";" |ForEach-Object {
$key,$value = $_ -split "="
$DBConnValues[$key] = $value
}
现在您可以通过名称访问每个属性:
PS C:> $DBConnValues["Server"]
ServerName
这将是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"