2017-07-06 3 views
0

Ich versuche ein Powershell-Skript zu erstellen, um zwei IP-Adressen aus zwei verschiedenen Textdateien zu vergleichen, und dann eine Aktionsbasis zu erstellen, wenn sie übereinstimmen oder nicht übereinstimmen. Siehe untenPowershell - Dateien vergleichen und Maßnahmen ergreifen

Wenn die beiden Dateien übereinstimmen, bekomme ich offensichtlich ein ==, oder ein =>, wenn sie nicht übereinstimmen. Ich bin nicht sicher, wie man == oder => als eine Variable verwendet, um den Rest des Skripts fortzusetzen. Jede Hilfe oder Empfehlungen werden sehr geschätzt.

Antwort

0

Eine Möglichkeit ist, den Wert der SideIndicator Eigenschaft zu überprüfen; z.B .:

if ((Compare-Object (Get-Content test1.txt) (Get-Content test2.txt) -IncludeEqual).SideIndicator -eq '==') { 
    "The files are equal" 
} 

Compare-Object gibt nichts, wenn es keine Unterschiede gibt und man weglassen -IncludeEqual, so über die auch geschrieben werden kann:

if (-not (Compare-Object (Get-Content test1.txt) (Get-Content test2.txt))) { 
    "The files are equal" 
} 
+0

Wie füge ich eine .SideIndicator für <=? –

+0

Was provoziert die Frage? –

+0

Immer noch ein wichtiger Noob bei Powershell, aber die Art, wie ich es sehe, muss ich die zweite Variable hinzufügen, um eine separate Aktion zu ergreifen, wenn die IP-Adressen nicht übereinstimmen. –

0

Sie können dem Ergebnis Compare-Object eine Variable zuweisen. Bei einem schnellen Test scheint nichts zurückgegeben zu werden, wenn die beiden Objekte übereinstimmen. Sie müssten also nach $ null im Wert der Variablen suchen.

$a = Compare-Object -ReferenceObject "abc" -DifferenceObject "abc" 
if($a -ne $null){continue working here}else{do other action here} 

Weitere Informationen finden Sie unter: https://ss64.com/ps/compare-object.html

Verwandte Themen