使用 Powershell 比较两个文件并仅列出第二个文件的差异

Compare two Files and list only the differences of 2nd File using Powershell

我试图在脚本的第一个 运行 -> 存储到 CSV 文件中的存储帐户中获取当前的 azure vms 列表 O 第二个 运行 - 当前列表应该与存储帐户中的现有 csv 文件进行比较,以防任何 vms 退役,应该记录并存储在存储帐户中的第二个文件中

这对我来说很好,但问题是当我们创建一个新的 azure 虚拟机时,它也被添加到停用 csv 列表中

$Difference = 比较对象 $existingVmCsv $vmrecordFile -属性 VmName -PassThru | Select-对象虚拟机名称、资源组名称、订阅名称

我尝试了几个侧面指示器,但都没有用

  1. $Difference = Compare-Object -ReferenceObject @($vmrecordFile | Select-Object) -DifferenceObject @($existingVmCsv | Select-Object) -PassThru -属性 VmName,ResourceGroupName,SubscriptionName | Where-Object {$_sideIndicator -eq "<="}

  2. $Difference = 比较对象 -ReferenceObject $vmrecordFile -DifferenceObject $existingVmCsv -PassThru -属性 VmName、ResourceGroupName、SubscriptionName | Where-Object {$_sideIndicator -eq "<="}

谢谢 User Cpt.Whale - Stack Overflow。发布您的建议作为答案以帮助其他社区成员。

It seems, you have a typo in a syntax. Object property references should use a "." , like Where-Object { $_.sideIndicator -eq '<=' }

'<='表示属性值只出现在-ReferenceObject集合References:powershell - compare two files and update the differences to 2nd file - Stack Overflow , Powershell : How to Compare Two Files, and List Differences | | Dotnet Helpers (dotnet-helpers.com) and compare-object not working : PowerShell (reddit.com)