powershell - 仅比较对象左侧或右侧

标签 powershell left-join diff right-join compareobject

快速问题

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

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

详情
Compare-Object给出参数 -excludeDifferent-includeEqual允许您修改您得到的结果。
  • 使用两者为您提供内连接
  • 仅使用 -includeEqual为您提供完整的外连接
  • 仅使用 -excludeDifferent毫无意义;因为默认情况下相等的项目被排除在外,所以它现在将排除所有内容。
  • -includeLeft 没有选项, -excludeLeft或类似。

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

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

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

    最佳答案

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

    filter leftside{
    param(
            [Parameter(Position=0, Mandatory=$true,ValueFromPipeline = $true)]
            [ValidateNotNullOrEmpty()]
            [PSCustomObject]
            $obj
        )
    
        $obj|?{$_.sideindicator -eq '<='}
    
    }
    

    用法
    compare-object $a $b | leftside
    

    关于powershell - 仅比较对象左侧或右侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28342081/

    相关文章:

    powershell - Powershell-如何基于文件名创建文件名数组?

    json - 创建JSON字符串,PowerShell对象

    linux - 如何比较两个文本文件,同时忽略从一个实例到下一个实例的更改字段?

    linux - 如何查找哪些文件来自哪台机器?

    sql-server - osql vs Invoke-Sqlcmd-重定向后者的输出

    powershell - Start-Job与直接执行命令有何不同?

    mysql - 有人可以解释为什么这个左外连接会这样吗?

    mysql - 连接表以从两个表中选择数据时出错

    mysql - 重复的行

    java - 获取新的/更改的 java 方法的列表