【发布时间】:2018-02-06 05:20:49
【问题描述】:
我有一个文本文件,我需要从中获取值。
示例文本文件:
[网站 01] DBServer=LocalHost DBName=数据库01 用户名=管理员 密码=qwerty [网站 02] 数据库服务器=192.168.0.10 DBName=数据库02 用户名=管理员 密码=qwerty目前,我的代码会读取文件并将每个作为数组条目放置在找到的每一行 DBServer= 中,并且此文本文件可以包含多个站点:
$NumOfSites = Get-Content $Sites |
Select-String -Pattern "DBServer=" -Context 0,3
$i = 0
$NumOfSites | ForEach-Object {
$svr = $NumOfSites[$i] -isplit "\n" |
% { ($_ -isplit 'DBServer=').Trim()[1] }
$db = $NumOfSites[$i] -isplit "\n" |
% { ($_ -isplit 'DBName='.Trim())[1] }
$uid = $NumOfSites[$i] -isplit "\n" |
% { ($_ -isplit 'Username='.Trim())[1] }
$pswd = $NumOfSites[$i] -isplit "\n" |
% { ($_ -isplit 'Password='.Trim())[1] }
$i = $i+1
}
如果没有一些额外的空格或很好的字符串变量,我无法正确拆分每个属性。 我只需要从我拥有的文件示例的格式中提取信息以作为变量放入 SQL 连接行。
【问题讨论】:
-
您发布的代码不完整。发布问题时,请确保您的代码是minimal reproducible example。此外,一些括号似乎放错了位置,尽管这不应该破坏代码。话虽如此,解析 INI 样式的文件是一个很好解决的问题。请做一些research。
标签: powershell parsing split trim