2017-01-25 4 views
-2

Я пытался присвоить значения результатов 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===} 
+0

Для меня непонятно, что вы спрашиваете. Чего вы не достигнете? –

+0

Я пытаюсь получить значения из Compare-Object -IncludeEqual -ExcludeDifferent $ a $ b и назначить их массиву с именем $ c. – AESTHETICS

+0

Возможно, вам нужно что-то вроде '$ c = (Compare-Object -IncludeEqual -ExcludeDifferent $ a $ b) | выберите -expand InputObject' –

ответ

0

Попробуйте переключатель -PassThru для Compare-Object. Он выведет строки. Если объектом был объект, он добавляет бонусный указатель в качестве дополнительного свойства.

Ex.

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

Кроме того, если вы хотите сохранить оригинальный FileInfo -объект, можно указать -Property Basename сравнить это значение только не выбрасывая остальную часть объекта. Ex.

$c = Compare-Object (dir C:\_pc\*) (dir C:\Users\username\Documents\folder\Jezyki\*) -IncludeEqual -ExcludeDifferent -Property Basename -PassThru 
Смежные вопросы