Compare-Object
Két objektumkészletet hasonlít össze.
Syntax
All
Compare-Object
[-ReferenceObject] <PSObject[]>
[-DifferenceObject] <PSObject[]>
[-SyncWindow <Int32>]
[-Property <Object[]>]
[-ExcludeDifferent]
[-IncludeEqual]
[-PassThru]
[-Culture <String>]
[-CaseSensitive]
[<CommonParameters>]
Description
A Compare-Object parancsmag két objektumkészletet hasonlít össze. Az egyik objektumkészlet a hivatkozási, a másik pedig a különbség.
Az összehasonlítás eredménye azt jelzi, hogy egy tulajdonságérték csak a hivatkozási objektumban (<=) jelent-e meg, vagy csak a különbségben objektumban (=>). Ha az IncludeEqual paramétert használja, (==) azt jelzi, hogy az érték mindkét objektumban szerepel.
Ha a hivatkozási vagy a különbség objektumok null ($null), Compare-Object végződési hibát okoz.
Néhány példa splatting használatával csökkenti a kódminták vonalhosszát. További információkért tekintse meg a következőket: about_Splatting. A példák két szövegfájlt használnak, mindegyik érték egy külön sorban van.
Testfile1.txt a következő értékeket tartalmazza: kutya, mókus és madár.
Testfile2.txt a következő értékeket tartalmazza: macska, madár és racoon.
Példák
1. példa: Két szövegfájl tartalmának összehasonlítása
Ez a példa két szövegfájl tartalmát hasonlítja össze. A kimenet csak azokat a sorokat jeleníti meg, amelyek különböznek a fájloktól.
Testfile1.txt az hivatkozási objektum (<=), és Testfile2.txtaz különbség objektum (=>).
A két fájlban megjelenő tartalommal rendelkező sorok nem jelennek meg.
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. példa: Két szövegfájl minden sorának összehasonlítása
Ez a példa az IncludeEqual használatával hasonlítja össze két szövegfájl egyes sorait. Mindkét fájl összes tartalomsora megjelenik.
A SideIndicator megadja, hogy a sor megjelenik-e a Testfile1.txthivatkozási objektumban (<=), Testfile2.txt objektum (=>) vagy mindkét fájlban (==).
$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. példa: Az egyes tartalomsorok összehasonlítása és a különbségek kizárása
Ez a példa az IncludeEqual és ExcludeDifferent paraméterekkel hasonlítja össze a két szövegfájl egyes sorait.
Mivel a parancs a ExcludeDifferent paramétert használja, a kimenet csak a két fájlban lévő sorokat tartalmazza, ahogy az SideIndicator (==) is mutatja.
$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. példa: Két folyamatobjektum-készlet összehasonlítása
Ez a példa két objektumkészletet hasonlít össze, amelyek a számítógép futó folyamatait tartalmazzák.
$Processes_Before = Get-Process
notepad.exe
$Processes_After = Get-Process
Compare-Object -ReferenceObject $Processes_Before -DifferenceObject $Processes_After
InputObject SideIndicator
----------- -------------
System.Diagnostics.Process (notepad) =>
A Get-Process parancsmag lekéri a számítógép futó folyamatait, és tárolja őket a $Processes_Before változóban.
A notepad.exe alkalmazás elindult.
Get-Process lekéri a számítógép futó folyamatainak frissített listáját, és tárolja őket a $Processes_After változóban.
A Compare-Object összehasonlítja a $Processes_Before és $Processes_After változókban tárolt két folyamatobjektum-készletet. A kimenet megjeleníti a objektum különbségét $Processes_After.
Paraméterek
-CaseSensitive
Azt jelzi, hogy az összehasonlításoknak megkülönböztetik a kis- és nagybetűket.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | False |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Culture
Az összehasonlításhoz használandó kultúrát adja meg.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-DifferenceObject
A hivatkozási objektumokkal összehasonlított objektumokat adja meg.
Paramétertulajdonságok
| Típus: | PSObject[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-ExcludeDifferent
Azt jelzi, hogy ez a parancsmag csak az összehasonlított objektumok azonos jellemzőit jeleníti meg. A rendszer elveti az objektumok közötti különbségeket.
A ExcludeDifferent és IncludeEqual használatával csak a hivatkozási és különbség objektumok közötti vonalakat jelenítheti meg.
Ha ExcludeDifferentIncludeEqualnélkül van megadva, nincs kimenet.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | False |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-IncludeEqual
IncludeEqual megjeleníti a hivatkozási és különbség objektumok közötti egyezéseket.
Alapértelmezés szerint a kimenet tartalmazza a hivatkozási és objektumok közötti különbséget is.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | False |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-PassThru
Ha a PassThru paramétert használja, Compare-Object kihagyja a PSCustomObject burkolót az összehasonlított objektumok köré, és változatlanul visszaadja a különböző objektumokat.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | False |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Property
A referencia- és összehasonlítandó objektumok tulajdonságainak tömbje.
Paramétertulajdonságok
| Típus: | Object[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-ReferenceObject
Az összehasonlításhoz referenciaként használt objektumtömböt adja meg.
Paramétertulajdonságok
| Típus: | PSObject[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-SyncWindow
Megadja azoknak a szomszédos objektumoknak a számát, amelyek Compare-Object szempontokat, miközben egyezést keresnek egy objektumgyűjteményben.
Compare-Object megvizsgálja a szomszédos objektumokat, ha nem találja az objektumot ugyanabban a helyzetben egy gyűjteményben. Az alapértelmezett érték a [Int32]::MaxValue, ami azt jelenti, hogy Compare-Object a teljes objektumgyűjteményt megvizsgálja.
Paramétertulajdonságok
| Típus: | Int32 |
| Alapértelmezett érték: | [Int32]::MaxValue |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
PSObject
A folyamaton belül elküldhet egy objektumot a DifferenceObject paraméternek.
Kimenetek
None
Ha a hivatkozás objektumra, és a különbség objektum azonos, akkor nincs kimenet.
PSCustomObject
Ha az objektumok eltérnek, Compare-Object egy PSCustomObject burkolóban lévő különböző objektumokat egy SideIndicator tulajdonsággal körbefuttatva hivatkozik a különbségekre. Ha a PassThru paramétert használja, Compare-Object kihagyja a PSCustomObject burkolót az összehasonlított objektumok köré, és változatlanul visszaadja a különböző objektumokat.