使用 Compare-Object 后为数组赋值

Assigning values to the an array after using Compare-Object

我一直在尝试为 Compare-Object 结果赋值,但我得到了有关输出的更多信息。

代码如下:

$a = (dir C:\_pc\*).BaseName
$b = (dir C:\Users\username\Documents\folder\Jezyki\*).BaseName
$c = (Compare-Object -IncludeEqual -ExcludeDifferent $a $b)
foreach ($element in $c) {
"$element"
}
Write-Output ($c)

运行此脚本的示例输出:

@{InputObject=FolderName; SideIndicator===}

Compare-Object 尝试 -PassThru 开关。它将输出字符串。如果该对象是一个对象,它将附加 sideindicator 作为额外的 属性.

例如。

$c = Compare-Object -IncludeEqual -ExcludeDifferent $a $b -PassThru

此外,如果您想保留原始的 FileInfo-object,您可以指定 -Property Basename 以仅比较该值而不丢弃该对象的其余部分。例如

$c = Compare-Object (dir C:\_pc\*) (dir C:\Users\username\Documents\folder\Jezyki\*) -IncludeEqual -ExcludeDifferent -Property Basename -PassThru