Сравнивает два набора объектов.
Синтаксис
Compare-Object [-ReferenceObject] <PSObject[]> [-DifferenceObject] <PSObject[]> [-CaseSensitive] [-Culture <string>] [-ExcludeDifferent] [-IncludeEqual] [-PassThru] [-Property <Object[]>] [-SyncWindow <int>] [<CommonParameters>]
Описание
Командлет Compare-Object сравнивает два набора объектов. Один набор объектов является эталонным, а другой — отличающимся.
Результат сравнения позволяет узнать, было ли обнаружено значение свойства только в объекте из эталонного набора (символ <=), только в объекте из отличающегося набора (символ =>) или, если указан параметр IncludeEqual, в обоих объектах (символ ==).
Параметры
-CaseSensitive
Указывает, что сравнение должно выполняться с учетом регистра.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Culture <string>
Задает культуру, используемую при сравнении.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-DifferenceObject <PSObject[]>
Задает объекты, которые будут сравниваться с эталонными.
Обязательно? |
true |
Позиция? |
2 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue) |
Принимать подстановочные знаки? |
false |
-ExcludeDifferent
Отображает только совпадающие характеристики сравниваемых объектов.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-IncludeEqual
Отображает совпадающие характеристики сравниваемых объектов. По умолчанию отображаются только те характеристики, которые различаются в эталонном и отличающемся объектах.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-PassThru
Передает по конвейеру различающиеся объекты. По умолчанию этот командлет не формирует никаких выходных данных.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Property <Object[]>
Задает сравниваемые свойства эталонного и отличающегося объектов.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-ReferenceObject <PSObject[]>
Объекты, используемые при сравнении в качестве эталона.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-SyncWindow <int>
Задает область поиска, в которой выполняется попытка повторной синхронизации порядка при отсутствии совпадений. По умолчанию используется значение [Int32]::MaxValue.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
[Int32]::MaxValue |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.Management.Automation.PSObject Можно передать объект DifferenceObject командлету Compare-Object по конвейеру. |
Выходные данные |
Нет или отличающиеся объекты Если задан параметр PassThru, командлет Compare-Object возвращает отличающиеся объекты. В противном случае этот командлет не формирует никаких выходных данных. |
Пример 1
C:\PS>compare-object -referenceobject $(get-content C:\test\testfile1.txt) -differenceobject $(get-content C:\test\testfile2.txt) Описание ----------- Эта команда сравнивает содержимое двух текстовых файлов. Она выводит только те строки, которые имеются только в одном из двух файлов, но не в обоих.
Пример 2
C:\PS>compare-object -referenceobject $(get-content C:\Test\testfile1.txt) -differenceobject $(get-content C:\Test\testfile2.txt) -includeequal Описание ----------- Эта команда построчно сравнивает содержимое двух текстовых файлов. Она выводит все строки обоих файлов, указывая при этом для каждой строки, имеется ли она только в файле Textfile1.txt, файле Textfile2.txt или в обоих файлах.
Пример 3
C:\PS>$processes_before = get-process C:\PS> notepad C:\PS> $processes_after = get-process C:\PS> compare-object -referenceobject $processes_before -differenceobject $processes_after Описание ----------- Эти команды сравнивают два набора объектов процессов. Первая команда с помощью командлета Get-Process получает выполняющиеся на компьютере процессы. Они сохраняются в переменной $processes_before. Вторая команда запускает Блокнот (Notepad). В третьей команде снова используется командлет Get-Process и полученные процессы сохраняются в переменной $processes_after. Четвертая команда с помощью командлета Compare-Object выполняет сравнение двух наборов объектов процессов. Она выводит список различий между ними, в который входит новый экземпляр Блокнота (Notepad).
См. также