Compare-Object
두 개체 집합을 비교합니다.
구문
All
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 |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Culture
비교에 사용할 문화권을 지정합니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-DifferenceObject
참조 개체와 비교되는 개체를 지정합니다.
매개 변수 속성
| 형식: | PSObject[] |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | 1 |
| 필수: | True |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-ExcludeDifferent
이 cmdlet은 같은 비교된 개체의 특성만 표시됨을 나타냅니다. 개체 간의 차이는 무시됩니다.
IncludeEqualExcludeDifferent 사용하여 참조차이 개체 간에 일치하는 선만 표시합니다.
ExcludeDifferentIncludeEqual없이 지정하면 출력이 없습니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-IncludeEqual
IncludeEqual참조 개체와 차이점 개체 간의 일치 항목을 표시합니다.
기본적으로 출력에는
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-PassThru
PassThru 매개 변수를 사용하는 경우 Compare-Object 비교된 개체 주위에 PSCustomObject 래퍼를 생략하고 변경되지 않은 다른 개체를 반환합니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Property
비교할 참조 및 차이 개체의 속성 배열을 지정합니다.
매개 변수 속성
| 형식: | Object[] |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-ReferenceObject
비교를 위한 참조로 사용되는 개체의 배열을 지정합니다.
매개 변수 속성
| 형식: | PSObject[] |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | 0 |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-SyncWindow
개체 컬렉션에서 일치 항목을 찾는 동안 Compare-Object 검사하는 인접 개체의 수를 지정합니다.
Compare-Object 컬렉션에서 동일한 위치에 있는 개체를 찾을 수 없는 경우 인접한 개체를 검사합니다. 기본값은 [Int32]::MaxValue, 즉 Compare-Object 전체 개체 컬렉션을 검사합니다.
매개 변수 속성
| 형식: | Int32 |
| Default value: | [Int32]::MaxValue |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.
입력
PSObject
파이프라인 아래로 개체를 DifferenceObject 매개 변수로 보낼 수 있습니다.
출력
None
참조 개체와 차이 개체가 같으면 출력이 없습니다.
PSCustomObject
개체가 다른 경우 Compare-ObjectPSCustomObject 래퍼에서 다른 개체를 SideIndicator 속성으로 래핑하여 차이점을 참조합니다.
PassThru 매개 변수를 사용하는 경우 Compare-Object 비교된 개체 주위에 PSCustomObject 래퍼를 생략하고 변경되지 않은 다른 개체를 반환합니다.