我正在寻找一种方法来查找文件中的字符串后提取字符串,然后提取该字符串和分离器之间的一切。我能得到LINE出来的文件,但我如何得到我想要离开它的字符串有点难倒。PowerShell来寻找另一个字符串
线出来的文件是这样的:
<add key="ConnectionString" value="Data Source=xxxxxx;Initial Catalog=Database;Integrated Security=True" />
我能找到的“数据源=”,但我想回到“XXXXXX”。以下是我正在使用的:
((Get-Process -Name "db-engine").Path) + '.Config' | Select-String -Path {$_} - Pattern 'Data Source='
这给了我从上面的整个“添加键”行。
在此先感谢您的帮助!
编辑:感谢您的答复。做多一些挖后,它看起来像“更正确”的方式实际上是用[XML]在文件的内容拉成一个XML对象。然后我可以获取值并使用split将数据分解成我需要的块。最终的代码将如下所示:
$configpath = ((Get-Process -Name "db-engine").Path)
$linepath = $configpath + ".Config"
[xml]$xmlfile = get-content $linepath
$xmlvalue = ($xmlfile.configuration.appSettings.add | where {$_.key -eq "ConnectionString"}).value
$server = $xmlvalue.split(";=")[3]
$db = $xmlvalue.split(";=")[5]
仍然在研究结果,但这似乎让我走上了正确的道路。 Split将输入分解为一个数组,所以[x]让我调用一个特定的元素。在分割中有多个分隔符,它会在任何分隔符处打断输入。也许这可以帮助未来的其他人。
感谢所有帮助,伙计们!
我在解决方案中使用了这些元素。我将它添加到编辑后的文章中。谢谢! –