Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 获取内容帮助获取带有通配符的特定节_Powershell_Ini - Fatal编程技术网

Powershell 获取内容帮助获取带有通配符的特定节

Powershell 获取内容帮助获取带有通配符的特定节,powershell,ini,Powershell,Ini,我有多个INI文件,我必须定期更新,因为我们的呼叫中心正在增加新的线路。我可以使用get inicontent脚本来获取我试图比较的值,但是ID部分有时有空格,有时也没有,可能我遇到的最大问题是缩放。每个INI可以有多个部分标记为相同的内容,但末尾有一个数字。我需要每个ACD部分的ID。请参见下面的文件示例,以及获取一个ACD值的方法。下面的脚本返回每个值,但需要对每个值进行单独查询,并注意有选项卡的值的空格。我想找出一种方法来返回所有ACD ID结果,忽略额外的空格。任何帮助都将不胜感激 IN

我有多个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

只需在以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]
    }
}

它对我来说很好,你确定它不涉及任何中断空间,并且回车/换行正确设置吗?(为什么空间首先在那里??)。尝试通过将上述内容粘贴回ini文件来重建新的ini文件。是的,上述查询工作正常,因为我已计算了每个ID中的空格,并放置了所有三个查询,但是我的文件中有数百个ACD,因此我需要能够解析文件并找到所有ACDxxx,并返回每个ID的ID值。希望这能澄清问题,完美的解决了问题。我不知道如何正确地循环结果。非常感谢。