Arrays 如何比较Powershell中同时具有多个属性和对象的两个阵列

Arrays 如何比较Powershell中同时具有多个属性和对象的两个阵列,arrays,powershell,object,properties,compare,Arrays,Powershell,Object,Properties,Compare,我正在寻找一种方法来遍历集合中的每个数组。所以我有两个导入的CSV,我需要比较每个CSV上的数据 CSV1中的示例数组内容(数组为$Collection1): CSV2中的示例数组内容(数组为$Collection2): 所以在这种情况下,我想让它告诉我鼠标不同,键盘不同,并且添加了一个新设备。如果设备被移除,我也想知道这一点。有没有办法比较CSV数据?我尝试将两个数组上的对象作为一个整体进行比较 例如: Compare-Object $Collection1 $Collection2 但这只

我正在寻找一种方法来遍历集合中的每个数组。所以我有两个导入的CSV,我需要比较每个CSV上的数据

CSV1中的示例数组内容(数组为$Collection1):

CSV2中的示例数组内容(数组为$Collection2):

所以在这种情况下,我想让它告诉我鼠标不同,键盘不同,并且添加了一个新设备。如果设备被移除,我也想知道这一点。有没有办法比较CSV数据?我尝试将两个数组上的对象作为一个整体进行比较

例如:

Compare-Object $Collection1 $Collection2
但这只会产生新的数据。如果我移除一个块(比如键盘)并用其他东西替换它,它会看到相同的计数,因此没有区别。它也看不到对属性的任何对象的更改


如果需要使用forEach循环,那么如何选择相同的块(如键盘)来比较项目,然后转到下一个。使用ForEach是没有意义的。有点混乱。

您可以尝试比较对象$Collection1$Collection2-属性名称、类型、连接类型。然后使用
SideIndicator
显示哪个集合有差异。您必须定义更多标准以获得更好的结果。你说你想看到不同,但这意味着什么?这是逐行的差异吗?您是否希望两个数组中的
Name
Type
相同,但
ConnectionType
可能不同?这里有很多可以设计的组合,我相信这对于你想要的东西来说是太过分了。谢谢你的回复!我不知道你能用“比较后的属性。我当然可以把这当作一个潜在的答案。为了回答您的问题,我正在SQL表中自动化我们的库存。我正在寻找一种方法,使任何一天的变化与此更新。我想知道表中的内容是否有任何变化。如果有,我将使用automation.Hmm运行sql更新。我在一个项目上更改了一列。它告诉我有变化,但因为我选择了一个属性,它没有告诉我变化在哪里连接类型滑块指示器\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。然后使用
SideIndicator
显示哪个集合有差异。您必须定义更多标准以获得更好的结果。你说你想看到不同,但这意味着什么?这是逐行的差异吗?您是否希望两个数组中的
Name
Type
相同,但
ConnectionType
可能不同?这里有很多可以设计的组合,我相信这对于你想要的东西来说是太过分了。谢谢你的回复!我不知道你能用“比较后的属性。我当然可以把这当作一个潜在的答案。为了回答您的问题,我正在SQL表中自动化我们的库存。我正在寻找一种方法,使任何一天的变化与此更新。我想知道表中的内容是否有任何变化。如果有,我将使用automation.Hmm运行sql更新。我在一个项目上更改了一列。它告诉我有变化,但因为我选择了一个属性,它没有告诉我变化在哪里连接类型滑块指示器无线=>USB
Name: Keyboard
Type: InputDevice
ConnectionType: Wireless

Name: Mouse
Type: InputDevice
ConnectionType: Wireless

Name: Monitor
Type: Display
ConnectionType: HDMI
Compare-Object $Collection1 $Collection2