So verwenden Sie mehrere Bedingungen in PowerShell Where-Object?

So verwenden Sie mehrere Bedingungen in PowerShell Where-Object?

In Powershell, die “Wo-objekt”CMDLET wird verwendet, um die Objekte oder Werte eines Objekts herauszufiltern. Der Where-Object-Filter umfasst einzelne oder mehrere Bedingungen. Mit dem Mehrkonditionsfilter können Sie die Elemente herausfiltern und nur einige zurückgeben, die diesen Bedingungen entsprechen.

Wenn Sie sich anwenden, wird empfohlen, es mit anderen PowerShell-CMDlets zu leiten. Darüber hinaus können mehrere Bedingungen mithilfe von Skriptblöcken, verschiedenen Operatoren usw. definiert werden.

Dieser Beitrag zeigt die Arbeit und Verwendung mehrerer Bedingungen in PowerShell Where-Object.

So verwenden Sie mehrere Bedingungen in PowerShell "WO-ABJECT"?

PowerShell bietet die folgenden drei Möglichkeiten, um mehrere Bedingungen in PowerShell zu verwenden:

  • Verwenden von Skriptblöcken und Gleichstellungsoperatoren.
  • Verwenden von Skriptblöcken und Containment -Operatoren.
  • Verwenden von Skriptblöcken, Gleichheit und passenden Operatoren.

Methode 1: Verwenden Sie mehrere Bedingungen in PowerShell „Where-Object“ mit Skriptblöcken und Gleichstellungsoperatoren

Ein Skriptblock umfasst eine Reihe mehrerer Aussagen, die in lockigen Klammern eingeschlossen sind. Diese Arten von Blöcken können mit dem Cmdlet mit dem "Where-Object" verbunden werden-FilterskriptParameter.

Beispiel

Im folgenden Beispiel werden wir Gleichstellungsoperatoren mit Skriptblöcken ausüben, um mehrere Bedingungen in PowerShell zu verwenden.

Lassen Sie uns verstehen, wie ein Skriptblock mit der unten erwähnten Syntax erstellt wird:

> $ _.PropertyName -Matching -Parameter

In der obigen Syntax die “$ _.Ist das Symbol, das verwendet wird, um eine Eigenschaft zu beziehen. Die Eigenschaft und deren Wert (zu durchsuchten) werden mit einem beliebigen Gleichstellungsbetreiber (-Gt, -ge, -lt, -le, -eq) verbunden.

Hier werden wir einen Skriptblock verwenden, um die Prozesse basierend auf der CPU-Verwendung des Prozesses und des NPM zu filtern (nicht veranstalteter Speicher, der von einem Prozess verwendet wird). Die Prozesse, die die folgenden Bedingungen erfüllen, werden mit dem Skriptblock gefiltert:

  • NPM größer oder gleich 30 haben
  • Mit einer CPU -Verwendung von mehr als 3000:
> Get-Process | Wo -Object -Filterscript ($ _.Npm -lt 30) -und ($ _.CPU -GT 300)

Die Ausgabe zeigt, dass nur die Prozesse, die NPM größer sind als

Methode 2: Verwenden Sie mehrere Bedingungen in PowerShell „Where-Object“ mit Skriptblöcken und Containment-Operatoren

Containment -Operatoren sind die Arten von Vergleichsbetreibern. Diese Operatoren sind im Vergleich zu den Skriptblöcken in PowerShell leicht zu verstehen und zu lesen.

Die Liste der Containment -Operatoren und deren geeigneten Beschreibungen ist in der folgenden Tabelle aufgeführt:

Operator Beschreibung
"-Containes" Der Wert auf der rechten Seite des Bedieners ist auf der Wertegruppe auf der linken Seite vorhanden.
"-Ccontaines" Der rechte Operand ist in der Gruppe von Werten vorhanden, die rechts vorhanden sind. Die -ccontains sind fallsempfindlich.
"-Notcontaines" Der Wert auf der rechten Seite des Bedieners ist auf der linken Seite nicht vorhanden.
"-Cnotcontains" Dieser Betreiber arbeitet genauso wie die der -notierenden, jedoch mit Fallempfindlichkeit.

Beispiel

> Get-Service | Wo-objekt ($ _.StartType -in 'Handbuch') -und ($ _.Status -NotiertContains 'Running')

Nach dem obigen Code:

  • ($ _.STARTTYPE -in 'Handbuch')"Abrufen Sie die Dienste ab, in denen sich befinden"Handbuch”Modus.
  • -Und”Wird als Conklatneator verwendet, um beide Bedingungen zu kombinieren.
  • ($ _.Status -NoTcontains 'Running')„Abrufen Sie die nicht ausgeführten Dienste ab, was die gestoppten Dienste bedeutet:

Methode 3: Verwenden Sie mehrere Bedingungen in PowerShell „Where-Object“ unter Verwendung von Gleichheit und passenden Operatoren

Übereinstimmende Operatoren werden verwendet, um einem bestimmten Zustand oder einem bestimmten Elementmuster zu entsprechen. Diese Betreiber umfassen “-Match "," -notmatch "," -like "und" -notlike "”.

Beispiel

Dieser Befehl enthält mehrere Bedingungen, die auf Gleichheit und passenden Operatoren basieren:

> Get-Command | Wo-objekt ($ _.Commandtype -eq 'cmdlet') -und ($ _.Name -Like '*Import*')

Nach diesem Beispiel:

  • ($ _.Commandtype -eq 'cmdlet')"Holen Sie sich die Befehle gleich"cmdlet" Verwendung der "-Gl" Operator.
  • ($ _.Name -Like '*Import*')"Holen Sie sich die Namen beginnen mit"Importieren" Verwendung der "-wie" Operator:

Es ging darum, mehrere Bedingungen in PowerShell zu verwenden.

Abschluss

Mehrere Bedingungen sind diejenigen, bei denen mehr als zwei Aussagen oder Bedingungen definiert sind. Diese Bedingungen werden in PowerShell verwendet “Wo-objektMit der Kombination von Skriptblöcken und Vergleichsanweisungen. Dieser Beitrag hat einen vollständigen Leitfaden zur Verwendung mehrerer Bedingungen in PowerShell bereitgestellt.