Hvordan bruke flere forhold i PowerShell Where-Object?

Hvordan bruke flere forhold i PowerShell Where-Object?

I PowerShell, “Hvor-objektet”Cmdlet brukes til å filtrere ut objektene eller verdiene fra et objekt. Where-Object-filteret omfatter enkelt- eller flere forhold. Filteret med flere betingelser lar deg filtrere ut varene og returnere bare noen få som samsvarer med disse forholdene.

For å bruke hvor objektet, anbefales det å røre det med andre PowerShell-cmdlets. Videre kan flere forhold defineres ved hjelp av skriptblokker, forskjellige operatører og så videre.

Dette innlegget vil demonstrere arbeid og bruk av flere forhold i PowerShell Where-Object.

Hvordan bruke flere forhold i PowerShell “Where-Object”?

PowerShell gir følgende tre muligheter for å bruke flere forhold i PowerShell:

  • Bruke skriptblokker og likestillingoperatører.
  • Bruke skriptblokker og inneslutningsoperatører.
  • Bruke skriptblokker, likhet og matchende operatører.

Metode 1: Bruk flere betingelser i PowerShell “Where-Object” med skriptblokker og likestillingsoperatører

En skriptblokk består av et sett med flere utsagn omsluttet av krøllete seler. Disse typer blokker kan kobles sammen med Where-Object Cmdlet ved å bruke "-FilterScript" parameter.

Eksempel

I det følgende eksemplet vil vi utøve likestillingsoperatører med skriptblokker for å bruke flere forhold i PowerShell.

La oss forstå hvordan en skriptblokk opprettes ved hjelp av den nedenfor-nevnte syntaks:

> $ _.PropertyName -Matching -parameter

I syntaks ovenfor, "$ _.”Er symbolet som brukes til å referere til en eiendom. Eiendommen og verdien (som skal søkes) blir sammen med en hvilken.

Her vil vi bruke en skriptblokk for å filtrere prosessene basert på CPU-bruken av prosessen og NPM (ikke-sidereminnet som brukes av en prosess). Prosessene som oppfyller følgende betingelser blir filtrert ved hjelp av skriptblokken:

  • Har npm større enn eller lik 30
  • Å ha CPU -bruk større enn 3000:
> Get-Process | Where -Object -FilTerscript ($ _.Npm -lt 30) -og ($ _.CPU -GT 300)

Utgangen viser at bare prosessene som har npm større enn

Metode 2: Bruk flere forhold i PowerShell “Where-Object” med skriptblokker og inneslutningsoperatører

Inneslutningsoperatører er de typer sammenligningsoperatører. Disse operatørene er enkle å forstå og lese sammenlignet med skriptblokkene i PowerShell.

Listen over inneslutningsoperatører og deres passende beskrivelser er oppført i følgende tabell:

Operatør Beskrivelse
“-Foller” Verdien på høyre side av operatøren er til stede på gruppen av verdier på venstre side.
“-Contains” Høyre operand er til stede i gruppen av verdier som er til stede til høyre. -Kontanene er saks følsomme.
“-Notcontains” Verdien på høyre side av operatøren er ikke til stede på venstre side.
“-CnotContains” Denne operatøren fungerer den samme som for -ikke -innkontorene, men med saksfølsomhet.

Eksempel

> Get-Service | Hvor-objekt ($ _.Starttype -in 'manuell') -og ($ _.Status -notcontains 'Running')

I henhold til koden ovenfor:

  • ($ _.Starttype -in 'manuell')”Hent tjenestene som er i”Håndbok”Modus.
  • -og”Brukes som en sammenkobling for å kombinere begge forholdene.
  • ($ _.Status -NotContains 'Running')”Hent tjenestene som ikke kjører, noe som betyr tjenestene som stoppes:

Metode 3: Bruk flere forhold i PowerShell “Where-Object” med bruk av likhet og matchende operatører

Matchende operatører brukes til å matche en spesifisert tilstand eller mønster av elementer. Disse operatørene inkluderer "-Match "," -notmatch "," -lignende "og" -Notlignende”.

Eksempel

Denne kommandoen inneholder flere betingelser basert på likhet og samsvarende operatører:

> Get-Command | Hvor-objekt ($ _.CommandType -eq 'cmdlet') -og ($ _.Navn -lignende '*import*')

I følge dette eksemplet:

  • ($ _.CommandType -eq 'cmdlet')”Få kommandoene lik“cmdlet" bruker "-Eq”Operatør.
  • ($ _.Navn -lignende '*import*')”Få navnene til å begynne med“Import" bruker "-som”Operatør:

Det handlet om å bruke flere forhold i PowerShell.

Konklusjon

Flere forhold er de der mer enn to uttalelser eller forhold er definert. Disse forholdene brukes i PowerShell “Hvor-objektet”Med kombinasjonen av skriptblokker og sammenligningsuttalelser. Dette innlegget har gitt en komplett guide for å bruke flere forhold i PowerShell.