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