使用 Powershell 从环境变量中读取连接字符串
Reading connection string from Environment variable using Powershell
我有 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
想要一个字符串,其中每一行都是一个键值对。我们通过用换行符替换分号来实现这一点。它 returns 一个哈希表,我们将其提供给 New-object
以获取自定义 PowerShell 对象。然后您可以像在 PowerShell 中一样使用新对象。
$dbConn."Min Pool Size"
我有 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
想要一个字符串,其中每一行都是一个键值对。我们通过用换行符替换分号来实现这一点。它 returns 一个哈希表,我们将其提供给 New-object
以获取自定义 PowerShell 对象。然后您可以像在 PowerShell 中一样使用新对象。
$dbConn."Min Pool Size"