Joh*_*van 7 powershell diff left-join right-join compareobject
快速问题
是否有更好的(即更有效/更简洁)的方法来做到这一点?
compare-object $a $b | ?{$_.SideIndicator -eq '<='}
Run Code Online (Sandbox Code Playgroud)
详情
Compare-Object
给出参数-excludeDifferent
并-includeEqual
允许您修改得到的结果.
-includeEqual
给你一个完整的外部联接-excludeDifferent
毫无意义; 因为默认情况下会排除相等的项目,因此它现在将排除所有内容.有对没有选项-includeLeft
,-excludeLeft
或类似的.
目前要做右侧为空的左外连接(即参考对象中不在差异对象中的项目)我需要手动过滤结果,如上面的代码所示.
我错过了什么/有更好的方法吗?
该 cmdlet 没有类似的选项,但是您可以创建一个过滤器(例如在您的个人资料中),然后使用它来过滤结果:类似
filter leftside{
param(
[Parameter(Position=0, Mandatory=$true,ValueFromPipeline = $true)]
[ValidateNotNullOrEmpty()]
[PSCustomObject]
$obj
)
$obj|?{$_.sideindicator -eq '<='}
}
Run Code Online (Sandbox Code Playgroud)
用法
compare-object $a $b | leftside
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5992 次 |
最近记录: |