代码之家  ›  专栏  ›  技术社区  ›  Roger Hall

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

  •  0
  • Roger Hall  · 技术社区  · 8 年前

    我有多个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
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   BenH    8 年前

    只需在以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]
        }
    }
    
    推荐文章