Filter technieken met Where-Object

Filter technieken binnen PowerShell - 6

De sleutel tot het optimaal benutten van Windows PowerShell is begrijpen hoe objecten en de pijplijn samenwerken om precies de informatie te verkrijgen die je nodig hebt. Elke opdracht in de pijplijn genereert één of meer objecten en geeft deze door aan de volgende opdracht. Cruciaal in dit proces is het vermogen om de objecten en hun gegevens te filteren terwijl ze van de ene opdracht naar de andere gaan. Ik bespreek hier de filter technieken met Where-Object. PowerShell bevat een aantal cmdlets die je in staat stellen om opdrachten te maken die de uitvoer van je pijplijn verfijnen.

Where-Object

Ik begin met een voorbeeld. De vollgedige dataset omvat de volgende waarden.

Get-Module | Where-Object {$_.Version -eq '2.4.0'}

Het script bestaat uit drie componenten: de eigenschap waarop je de gegevens filtert (Version), een vergelijkingsoperator (-eq), en de waarde waarop je de filter baseert (2.4.0).

De output is als volgt:

We zien overigens hier dat de volledige output niet te lezen is. Beter zou zijn:

Get-Module | Where-Object {$_.Version -eq '2.4.0'} | Format-Table -AutoSize
Get-Module | Where-Object {$_.Version -eq '2.4.0'} | Format-List

Wanneer je een eigenschap aanroept in een Where-Object scriptblok, moet je de eigenschapsnaam vooraf laten gaan door het $-symbool, gevolgd door een punt. Het $-symbool vertegenwoordigt het huidige object in de pijplijn. Omdat het Where-Object commando wordt toegepast op elk object terwijl het door de pijplijn gaat, maakt het $_-symbool het mogelijk om de gespecificeerde eigenschap aan elk object te koppelen, zonder dat je het aantal objecten dat door de pijplijn gaat hoeft te weten en zonder dat je onderscheid hoeft te maken tussen die objecten.

Andere filter technieken met Where-Object

Het volgende element is de vergelijkingsoperator. PowerShell kent er verschillende:
-ne (not equal to / niet gelijk aan)

-lt (less than / minder dan)

-le (less than or equal to / minder dan of gelijk aan)

-gt (greater than / groter dan)

-ge (greater than or equal to / groter dan of gelijk aan)

-like (like—a wildcard comparison / als)

-notlike (not like—a wildcard comparison / niet)

-contains (contains the specified value / bevat)

-notcontains (doesn’t contain the specified value / bevat niet)

Het Where-Object scriptblok stelt je ook in staat om logische operatoren te gebruiken om meerdere expressies met elkaar te verbinden. Op deze manier kun je meerdere voorwaarden binnen één scriptblok evalueren. De logische operator bepaalt hoe je de individuele expressies behandelt om tot een uiteindelijke evaluatie te komen. Als het scriptblok als geheel evalueert naar True, wordt het object opgenomen in de resultaten. PowerShell ondersteunt verschillende logische operatoren:


-and (het scriptblok evalueert naar True als de expressies aan beide zijden van de logische operator naar True evalueren)

-or (Het scriptblok evalueert naar True wanneer een van de expressies aan beide zijden van de logische operator naar True evalueert.)

-xor (het scriptblok evalueert naar True wanneer een van de expressies aan beide zijden van de logische operator naar True evalueert en de andere expressie naar False evalueert.)

-not or ! (negateert, of keert het script-element dat erop volgt om)

Ik geef opnieuw een aantal voorbeelden.

Get-Module | Where-Object {($_.Version -eq '7.0.0.0') -and ($_.Name -like '*Utility')}

De output is nu als volgt.

Ik geef opnieuw een voorbeeld.

Get-Module | Where-Object {($_.Version -eq '7.0.0.0') -or ($_.Name -like '*Utility')}
Get-Module | Where-Object {($_.Version -eq '7.0.0.0') -xor ($_.Name -like '*Utility')}

De output is dan als volgt:

Meer informatie over PowerShell vind je hier. Meer informatie over de auteur van deze blog post vind je hier.

0 Shares:
Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

You May Also Like
Overzicht van OneDrive
Read More

Overzicht van OneDrive

OneDrive van Microsoft. Naadloze Cloud-opslag en Samenwerking. Onderstaaand een overzicht van OneDrive. In de moderne wereld van digitale…