Powershell脚本,用于识别XML文件列表中的重复项



专家

下面是我试图查找代码中输入的重复行的代码部分。

<InputParameters>
<Parameter Name="Team-Manager" Value="Team-Manager"/>
<Parameter Name="Team-Lead" Value="Team-Lead"/>
<Parameter Name="Officer" Value="Y"/>   
<Parameter Name="Officer" Value="Y"/>               
</InputParameters>

以下是我根据你的建议提出的问题。没有错误,但是输出也没有返回任何结果。

PS C:DesktopPath1xml> Get-ChildItem -Filter *.xml |Select-Xml -XPath '//*[count(./Officer) > 1]'
PS C:DesktopPath1xml> 
PS C:DesktopPath1xml> Get-ChildItem -Filter *.xml |Select-Xml -XPath '//*[count[@Name="Officer"][@Value="Y"] > 1]'
PS C:DesktopPath1xml> 

您可以使用XPathcount()函数来标识具有多个<UNIVERSITY>子节点的<address>节点:

Get-ChildItem -Filter *.xml |Select-Xml -XPath '//address[count(./UNIVERSITY) > 1]'

如果<address>节点可能有效地具有多个不同的<UNIVERSITY>条目,请使用Group-Object测试重复项:

Get-ChildItem -Filter *.xml |Select-Xml -XPath '//address[count(./UNIVERSITY) > 1]' |Where-Object {
@($_.Node.UNIVERSITY |Group-Object -NoElement |Where-Object Count -gt 1).Count -gt 0
}