获取IniContent帮助使用通配符获取特定章节



我有多个INI文件,当我们的呼叫中心添加新行时,我必须定期更新这些文件。我可以使用get-incontent脚本来获取我试图比较的值。然而,ID部分有时有空格,有时也没有,可能我遇到的最大问题是缩放。每个INI可以有多个部分标记为相同的内容,但末尾有一个数字。我需要每个ACD部分的ID。请参阅下面的文件示例以及我用来获取一个ACD值的内容。下面的脚本返回每个值,但它需要对每个值进行单独的查询,并注意那些具有选项卡的值的空格。我想找出一种方法来返回所有忽略多余空格的ACD ID结果。如有任何帮助,我们将不胜感激。

INI File:
[ACD1]
ID=1001
[ACD2]
ID=1002
[ACD3]
ID=1003
[Extension1]
ID=50001
[Extension2]
ID=50002
PS Script:
$FileContents = Get-IniContent "C:TempScriptTestCTISetupTest.ini"
$FileContents.ACD1.ID
$FileContents.ACD2.'  ID'
$FileContents.ACD3.'     ID'

预期结果为:

1001
1002
1003

只需在以ACD开头的密钥上循环,然后在以ID结尾的子密钥上循环。

$INI = Get-IniContent 'C:TempScriptTestCTISetupTest.ini'
$ACDKeys = ($INI).keys | Where-Object {$_ -like 'acd*'}
foreach ($ACDKey in $ACDKeys) {
$IDKeys = $INI[$ACDKey].Keys | Where-Object {$_ -like '*ID'}
foreach ($IDKey in $IDKeys){
$INI[$ACDKey][$IDKey]
}
}

最新更新