拆分 web.config 连接字符串

问题描述 投票:0回答:3

我刚刚开始使用 Powershell,我正在尝试拆分保存为字符串的连接字符串。我尝试过正则表达式和数组分割,但自从我学习以来,我想向你们询问入门级的想法。

下面是一个连接字符串示例,我试图将每个关键区域分配给一个变量。

@{connectionString=Data Source=database;Initial Catalog=catalog;User ID=userid;Password=password}

我希望每个值都可用于变量。

感谢您的阅读。

powershell
3个回答
14
投票

您可以使用

SqlConnectionstringbuilder
,而不是手动解析连接字符串。

$builder = New-Object System.Data.SqlClient.SqlConnectionStringBuilder -argumentlist "Data Source=database;Initial Catalog=catalog;User ID=userid;Password=password";
$builder["User Id"];
$builder["Data Source"];
$builder["Initial Catalog"];

2
投票

为了简单起见,我从字符串中删除了

@{
}
。我确信您可以对字符串进行一些预处理以将其修剪掉。

$string = "connectionString=Data Source=database;Initial Catalog=catalog;User ID=userid;Password=password"
$res = $string.Split(";")
$connString = $res[0]
$initialCatalog = $res[1]
$userId = $res[2]
$password = $res[3]

2
投票

如果将

;
替换为换行符,则可以使用
ConvertFrom-StringData
将值解析为哈希表:

PS> $connectionString = 'Data Source=database;Initial Catalog=catalog;User ID=userid;Password=password'
PS> $connectionValues = $connectionString -replace ';',"`r`n" |ConvertFrom-StringData
PS> $connectionValues

Name                           Value
----                           -----
User ID                        userid
Data Source                    database
Initial Catalog                catalog
Password                       password
© www.soinside.com 2019 - 2024. All rights reserved.