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