【发布时间】:2017-08-16 13:38:52
【问题描述】:
有没有办法使用 Compare-Object -property 来比较具有不同名称的 2 个属性?我有这样的事情:
$ComparisonProperty= $ComparisonProperty | Add-Member -MemberType AliasProperty -Name Url -Value ITEM_TARGET_URI -PassThru
Compare-Object $FirstFile $SecondFile -Property Url -PassThru | Where-Object{$_.SideIndicator -eq "<="} | Out-file .\result.txt
但这给出了一个错误:
无法将参数绑定到参数“InputObject”,因为它为空
在 $ComparisonProperty
//编辑
示例数据是 2 个带有许多标头的 csv 文件,其中 1 个带有 Url 标头,另一个带有 ITEM_TARGET_URI。结果应该是文件 1 中不存在于文件 2 中的字符串。如果我为它们提供相同的属性名称,则比较有效,但重点是强制它比较具有不同名称的 2 个属性。
【问题讨论】:
-
不应该是
$ComparisonProperty | Add-Member ...->$SecondFile | Add-Member ...吗? (假设$SecondFile是没有Url属性的那个) -
对于标题我说使用属性别名或创建计算属性以使属性具有相同的名称。您的错误虽然与此无关。
$ComparisonProperty是否在其他任何地方声明?否则我同意这个错误。是 $null。哪个文件没有“正确”属性 -
@MathiasR.Jessen 这就是答案。 Wolwgang .. 如果您显示一些样本数据和预期输出,这个问题会更好。那么答案会更好。
-
@Matt Done,提供了更多我想要实现的数据。
-
您是否提前知道标题以及其他列在输出中是否重要?
标签: powershell