Compare-Object
두 개체 집합을 비교합니다.
구문
Compare-Object
[-ReferenceObject] <PSObject[]>
[-DifferenceObject] <PSObject[]>
[-SyncWindow <Int32>]
[-Property <Object[]>]
[-ExcludeDifferent]
[-IncludeEqual]
[-PassThru]
[-Culture <String>]
[-CaseSensitive]
[<CommonParameters>]
Description
Compare-Object
cmdlet은 두 개체 집합을 비교합니다. 한 개체 집합은
비교 결과는 속성 값이 참조 개체(<=
)에만 나타나는지 또는 차이 개체(=>
)에만 나타나는지 여부를 나타냅니다.
IncludeEqual 매개 변수를 사용하는 경우(==
)는 값이 두 개체 모두에 있음을 나타냅니다.
참조 또는 차이 개체가 null($null
)이면 Compare-Object
종료 오류가 발생합니다.
일부 예제에서는 스플래팅을 사용하여 코드 샘플의 줄 길이를 줄입니다. 자세한 내용은 about_Splatting 참조하세요. 또한 이 예제에서는 각 값이 별도의 줄에 있는 두 개의 텍스트 파일을 사용합니다.
Testfile1.txt
개, 다람쥐, 새의 값을 포함합니다.
Testfile2.txt
고양이, 새, 너구리 값을 포함합니다.
예제
예제 1: 두 텍스트 파일의 내용 비교
이 예제에서는 두 텍스트 파일의 내용을 비교합니다. 출력은 파일 간에 다른 줄만 표시합니다.
두 파일에 모두 표시되는 콘텐츠가 있는 줄은 표시되지 않습니다.
Compare-Object -ReferenceObject $(Get-Content -Path C:\Test\Testfile1.txt) -DifferenceObject $(Get-Content -Path C:\Test\Testfile2.txt)
InputObject SideIndicator
----------- -------------
cat =>
racoon =>
dog <=
squirrel <=
예제 2: 두 텍스트 파일의 각 콘텐츠 줄 비교
이 예제에서는 IncludeEqual 사용하여 두 텍스트 파일의 각 콘텐츠 줄을 비교합니다. 두 파일의 모든 콘텐츠 줄이 표시됩니다.
SideIndicator 줄이 Testfile1.txt
참조 개체(<=
), Testfile2.txt
차이 개체(=>
) 또는 두 파일(==
)에 표시되는지 여부를 지정합니다.
$objects = @{
ReferenceObject = $(Get-Content -Path C:\Test\Testfile1.txt)
DifferenceObject = $(Get-Content -Path C:\Test\Testfile2.txt)
}
Compare-Object @objects -IncludeEqual
InputObject SideIndicator
----------- -------------
bird ==
cat =>
racoon =>
dog <=
squirrel <=
예제 3: 각 콘텐츠 줄 비교 및 차이점 제외
이 예제에서는 IncludeEqual 및 ExcludeDifferent 매개 변수를 사용하여 두 텍스트 파일의 각 콘텐츠 줄을 비교합니다.
이 명령은 ExcludeDifferent 매개 변수를 사용하므로 출력에는 SideIndicator(==
)에 표시된 대로 두 파일에 포함된 줄만 포함됩니다.
$objects = @{
ReferenceObject = $(Get-Content -Path C:\Test\Testfile1.txt)
DifferenceObject = $(Get-Content -Path C:\Test\Testfile2.txt)
}
Compare-Object @objects -IncludeEqual -ExcludeDifferent
InputObject SideIndicator
----------- -------------
bird ==
예제 4: 두 프로세스 개체 집합 비교
이 예제에서는 컴퓨터의 실행 중인 프로세스를 포함하는 두 개체 집합을 비교합니다.
$Processes_Before = Get-Process
notepad.exe
$Processes_After = Get-Process
Compare-Object -ReferenceObject $Processes_Before -DifferenceObject $Processes_After
InputObject SideIndicator
----------- -------------
System.Diagnostics.Process (notepad) =>
Get-Process
cmdlet은 컴퓨터의 실행 중인 프로세스를 가져오고 $Processes_Before
변수에 저장합니다.
notepad.exe 애플리케이션이 시작됩니다.
Get-Process
컴퓨터의 업데이트된 실행 중인 프로세스 목록을 가져오고 $Processes_After
변수에 저장합니다.
Compare-Object
$Processes_Before
저장된 두 개의 프로세스 개체 집합과 $Processes_After
변수를 비교합니다. 출력은 개체와 $Processes_After
차이를 표시합니다.
매개 변수
-CaseSensitive
비교가 대/소문자를 구분해야 임을 나타냅니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Culture
비교에 사용할 문화권을 지정합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-DifferenceObject
참조 개체와 비교되는 개체를 지정합니다.
형식: | PSObject[] |
Position: | 1 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-ExcludeDifferent
이 cmdlet은 같은 비교된 개체의 특성만 표시됨을 나타냅니다. 개체 간의 차이는 무시됩니다.
IncludeEqualExcludeDifferent 사용하여 참조차이 개체 간에 일치하는 선만 표시합니다.
ExcludeDifferentIncludeEqual없이 지정하면 출력이 없습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-IncludeEqual
IncludeEqual참조 개체와 차이점 개체 간의 일치 항목을 표시합니다.
기본적으로 출력에는
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-PassThru
PassThru 매개 변수를 사용하는 경우 Compare-Object
비교된 개체 주위에 PSCustomObject 래퍼를 생략하고 변경되지 않은 다른 개체를 반환합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Property
비교할 참조 및 차이 개체의 속성 배열을 지정합니다.
형식: | Object[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ReferenceObject
비교를 위한 참조로 사용되는 개체의 배열을 지정합니다.
형식: | PSObject[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SyncWindow
개체 컬렉션에서 일치 항목을 찾는 동안 Compare-Object
검사하는 인접 개체의 수를 지정합니다.
Compare-Object
컬렉션에서 동일한 위치에 있는 개체를 찾을 수 없는 경우 인접한 개체를 검사합니다. 기본값은 [Int32]::MaxValue
, 즉 Compare-Object
전체 개체 컬렉션을 검사합니다.
형식: | Int32 |
Position: | Named |
Default value: | [Int32]::MaxValue |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
파이프라인 아래로 개체를 DifferenceObject 매개 변수로 보낼 수 있습니다.
출력
None
참조 개체와 차이 개체가 같으면 출력이 없습니다.
개체가 다른 경우 Compare-Object
PSCustomObject
래퍼에서 다른 개체를 SideIndicator 속성으로 래핑하여 차이점을 참조합니다.
PassThru 매개 변수를 사용하는 경우 Compare-Object
비교된 개체 주위에 PSCustomObject
래퍼를 생략하고 변경되지 않은 다른 개체를 반환합니다.