仅比较对象左侧或右侧

2024-01-05

快速提问

有没有更好的(即更有效/更简洁)的方法来做到这一点?

compare-object $a $b | ?{$_.SideIndicator -eq '<='}

Detail

Compare-Object给定参数-excludeDifferent and -includeEqual允许您修改获得的结果。

  • 使用两者都会给你一个内部连接
  • 仅使用-includeEqual为您提供完整的外部连接
  • 仅使用-excludeDifferent毫无意义;由于默认情况下排除相同的项目,因此现在它将排除所有内容。

没有选项-includeLeft, -excludeLeft或类似的。

目前,要执行右侧为空的左外连接(即引用对象中的项不在差异对象中),我需要按照上面的代码手动过滤结果。

我错过了什么/有更好的方法吗?

http://ss64.com/ps/compare-object.html http://ss64.com/ps/compare-object.html


该 cmdlet 没有类似的选项,但是您可以创建一个过滤器(例如在您的配置文件中),然后使用它来过滤结果: 就像是

filter leftside{
param(
        [Parameter(Position=0, Mandatory=$true,ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSCustomObject]
        $obj
    )

    $obj|?{$_.sideindicator -eq '<='}

}

usage

compare-object $a $b | leftside
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅比较对象左侧或右侧 的相关文章

随机推荐