Megosztás a következőn keresztül:


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.