我刚开始使用Powershell,我正在尝试拆分保存为字符串的连接字符串。我尝试过正则表达式和数组拆分但是因为我正在学习,所以我想问一下大家的入门级想法。
下面是一个连接字符串示例,我试图将每个关键区域分配给变量。
@{connectionString=Data Source=database;Initial Catalog=catalog;User ID=userid;Password=password}
理想情况下,我希望每个值都可用于变量。
感谢阅读。
答案 0 :(得分:7)
您可以使用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"];
答案 1 :(得分:3)
为简单起见,我从字符串中删除了@{
和}
。我确定你可以对字符串进行一些预处理来修剪它们。
$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 :(得分: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