PowerShell-Grundlagen -Contains, -CContains & -NotContains Bedingte Operatoren

Windows PowerShell -Contains

Wenn es darum geht, Daten zu filtern oder zu finden, haben wir mit -Match, -Like und -Contains die Qual der Wahl. Es gibt zwar Überschneidungen, aber jeder bedingte Operator hat seine eigene Rolle in der PowerShell-Skripterstellung.

Contains eignet sich am besten für die Suche nach einem genauen Wert. Wenn ich möchte, dass ein Befehl entweder True oder False zurückgibt, beginne ich mit -Contains, während ich, wenn ich eine Liste von Ergebnissen möchte, -Match oder -Like ausprobiere.

Themen für den PowerShell-Bedingungsoperator -Contains

  • Beispiel 1: PowerShell -Contains (Basic)
  • Beispiel 2: Suchen eines Wertes in einer Sammlung
  • Beispiel 3: PowerShell -Contains Spreadsheet
  • Beispiel 4: PowerShell -CContains
  • Beispiel 5: PowerShell -NotContains
  • PowerShell -Match
  • PowerShell -Like

Beispiel 1a: PowerShell -Contains

PowerShell verwendet Substantive im Singular; daher ist „contains“ ein Verb und kein Substantiv im Plural. Ein Merkmal von -Contains ist, dass es normalerweise „True“ oder „False“ zurückgibt. Wenn Sie einen Befehl suchen, der eine Liste von Werten zurückgibt, dann verwenden Sie -Match oder -Like.

# PowerShell -Contains OperatorClear-Host$ArraySimple =@("House","Flat","Bungalow")$ArraySimple -Contains "Flat"# Result PS> True

Beispiel 1b: PowerShells -Contains ist sehr streng

Contains kann frustrierend sein, weil es so wählerisch ist. Nach einer Weile erkennt man, dass dies nur ein Design-Feature ist. Wenn Sie es nicht mögen, versuchen Sie -Match.

# PowerShell -Contains OperatorClear-Host$ArraySimple =@("House","Flats","Bungalow")$ArraySimple -Contains "Flat"# Result PS> False

Anmerkung 1: -Contains interpretiert „Flats“ und „Flat“ als unterschiedlich und gibt daher False zurück; es spielt keine Rolle, dass Flat eine Untermenge von Flats ist.

Herausforderung: Ersetzen Sie -Match durch -Contains.

Guy Recommends: Free WMI Monitor for PowerShell (FREE TOOL)

Windows Management Instrumentation (WMI) ist einer der verborgenen Schätze von Microsofts Betriebssystemen. Glücklicherweise hat SolarWinds einen kostenlosen WMI-Monitor für PowerShell erstellt, damit Sie diese Schätze an Leistungsinformationen entdecken und so Ihre PowerShell-Skripte verbessern können.

Nehmen Sie dem Rätselraten ein Ende, welche WMI-Zähler beim Skripten des Betriebssystems, Active Directory oder Exchange Server verwendet werden sollen. Probieren Sie diesen WMI-Monitor aus – er ist kostenlos.

SolarWinds WMI Monitor Download 100% Free Tool

Beispiel 2: Suchen eines Wertes in einer Sammlung

-Contains wäre meine Wahl der bedingten Operatoren für Situationen, in denen ich auf ein bestimmtes Element in einer Sammlung, einem Array oder einer Hashtabelle testen wollte.

# PowerShell -Contains$Collection = "Peter Smith", "Paula Harris", "Joan Evans"$Collection -Contains "Paula"# Result PS> False

Anmerkung 2: Wenn Sie kodieren: $Collection -Contains „Paula Harris“
Das Ergebnis wäre: True. Sie benötigen eine exakte Übereinstimmung des vollständigen Elements.

Beispiel 3: PowerShell -Contains Spreadsheet

Angenommen, wir möchten in einer Datei namens links.csv suchen. Außerdem können wir Import-Csv verwenden, um die Daten zu lesen, damit wir die Werte mit -Contains testen können.

Vorbereitung
Mein Spreadsheet heißt links.csv
Ich habe die Datei in D:\PowerShell gespeichert
Der Spaltenname ist „Custom channel“
Siehe Screenshot rechts.

Guy Recommends: Network Performance Monitor (FREE TRIAL)

SolarWinds Network Performance Monitor (NPM) hilft Ihnen herauszufinden, was in Ihrem Netzwerk passiert. Das Dashboard zeigt Ihnen an, ob die Ursache eine defekte Verbindung, fehlerhafte Geräte oder eine Überlastung der Ressourcen ist.

Am besten gefällt mir, dass NPM Lösungen für Netzwerkprobleme vorschlägt. Es bietet auch die Möglichkeit, den Zustand einzelner virtueller VMware-Maschinen zu überwachen. Wenn Sie an der Fehlersuche und der Erstellung von Netzwerkkarten interessiert sind, empfehle ich Ihnen, NPM im Rahmen einer 30-tägigen kostenlosen Testversion auszuprobieren.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Beispiel 4: PowerShell -CContains

Wie bei den anderen bedingten Operatoren der PowerShell können Sie die Groß- und Kleinschreibung erzwingen, indem Sie dem Befehl ein ‚C‘ voranstellen; CContains ist kein Tippfehler!

Anmerkung 4: Der Punkt ist, dass in der Tabelle der Wert eindeutig ‚LinkTop‘ ist, wenn wir die Groß-/Kleinschreibung mit CContains erzwingen, ist dies nicht dasselbe wie ‚linktop‘, daher ein falsches Ergebnis.

Beispiel 5: PowerShell -NotContains

Das negative -NotContains ist nicht so nützlich wie -NotMatch. Nach dem, was wir bereits gelernt haben, ist die Syntax jedoch vorhersehbar.

Hinweis 5: Denken Sie daran, dass bei -Contains und damit auch bei -NotContains die Übereinstimmung exakt sein muss. Es gibt keinen ‚Benutzerdefinierten Kanal‘ mit dem Namen von genau ‚Link‘.

Sehen Sie mehr über PowerShells -Like-Vergleiche“

Guy Recommends: SolarWinds Engineer’s Toolset (FREE TRIAL)

Dieses Engineer’s Toolset bietet eine umfassende Konsole mit 50 Dienstprogrammen zur Behebung von Computerproblemen. Guy sagt, dass es mir hilft, die Vorgänge im Netzwerk zu überwachen, und dass ich mit jedem Tool mehr über die Funktionsweise des zugrundeliegenden Systems erfahre.

Es gibt so viele gute Gadgets, dass man sich wie in einem Süßwarenladen fühlt. Zum Glück sind die Dienstprogramme logisch geordnet: Überwachung, Netzwerkerkennung, Diagnose und Cisco-Tools. Probieren Sie das SolarWinds Engineer’s Toolset jetzt 14 Tage lang kostenlos aus!

SolarWinds Engineer’s Toolset Download 14-tägige KOSTENLOSE Testversion

Über_Operatoren

# For even more information about PowerShell Operators try:Get-Help about_Operators

Hier ist die Liste der Typen der PowerShell-Operatoren

Siehe auch PowerShell’s -.Match“

Zusammenfassung des PowerShell-Operators -Contains Conditional Operator

Wenn Sie einen genauen Wert suchen, dann wäre -Contains meine erste Wahl als bedingter Operator. -Match oder -Like eignen sich besser für Szenarien, in denen Sie nur eine teilweise Übereinstimmung oder eine Liste von Elementen benötigen.

Weitere Beispiele für die Windows PowerShell-Ablaufsteuerung

– PowerShell Home – PowerShell If Statement – PowerShell ElseIf – Free Permissions Analyzer

– Bedingungsoperatoren – PowerShell -Match – PowerShell -Like – PowerShell -Contains

– PowerShell-Vergleichsoperatoren – PowerShell Syntax – Where Filter – PowerShell Else

Bitte mailen Sie mir, wenn Sie ein besseres Beispielskript haben. Bitte melden Sie mir auch sachliche Fehler, grammatikalische Fehler oder defekte Links, ich werde den Fehler gerne korrigieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.