我有多个INI文件,我必须定期更新,因为我们的呼叫中心正在添加新线路。我可以使用get-inicontent脚本来获取我想要比较的值但是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:\Temp\ScriptTest\CTISetupTest.ini"
$FileContents.ACD1.ID
$FileContents.ACD2.' ID'
$FileContents.ACD3.' ID'
预期结果将是:
1001
1002
1003
答案 0 :(得分:1)
只需以ACD开头循环键,然后遍历以ID结尾的子键。
$INI = Get-IniContent 'C:\Temp\ScriptTest\CTISetupTest.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]
}
}