Het tellen of berekenen van numerieke eigenschappen van objecten, zoals tekens, woorden en regels in tekenreeksen, kan frustrerend zijn. Gelukkig is de PowerShell Measure-Object
cmdlet geschikt voor de taak.
In deze tutorial leer je de kracht van de Measure-Object
cmdlet in het automatiseren van het meten van objecteigenschappen in PowerShell.
Duik er meteen in om je vaardigheden in het meten van objecten te verbeteren!
Vereisten
Deze tutorial is een hands-on demonstratie. Om mee te doen, heb je een systeem met PowerShell geïnstalleerd nodig. Deze tutorial maakt gebruik van Windows 10 met PowerShell v7.
Het tellen van bestanden en mappen
Het kennen van het aantal bestanden en mappen in een map kan nuttig zijn in verschillende scenario’s. Een voorbeeld is wanneer je de grootte van een map moet bewaken of het aantal bestanden in een map moet controleren.
De Measure-Object
cmdlet telt het aantal bestanden en mappen in een map. Het exacte aantal helpt je bij het beter beheren en optimaliseren van je systeembronnen.
Om te zien hoe de Measure-Object
cmdlet werkt bij het tellen van bestanden en mappen:
1. Open PowerShell en voer de volgende Get-ChildItem
-opdracht uit om het totaal aantal bestanden en mappen gezamenlijk terug te geven (Measure-Object
) in uw huidige directory.
De onderstaande uitvoer geeft 4852 bestanden en mappen aan in de huidige directory.

Misschien wil je alle bestanden en submappen in de directorystructuur recursief opnemen. Voeg in dat geval de parameter
-Recurse
toe, zoals hieronder weergegeven.Get-ChildItem -Recurse | Measure-Object
2. Voer vervolgens dezelfde opdracht uit als in stap één. Maar voeg deze keer de parameter -Directory
toe om alleen het totaal aantal mappen binnen de werkmap te tellen.
Zoals je hieronder kunt zien, is het totale aantal nu lager (135) omdat de opdracht alleen mappen heeft geteld, met uitsluiting van alle andere objecten.

3. Voer nu de onderstaande opdracht uit om het aantal uitvoerbare bestanden (.exe
) in uw huidige directory te tellen.
De -Filter
-parameter vertelt de Get-ChildItem
-cmdlet om de resultaten te filteren en alleen de bestanden met de opgegeven extensie terug te geven (bijv. *.txt
, *.jpg
, *.csv
).

Het Meten van Bestandsgroottes
Het meten van objectlengtes en -groottes kan helpen bij het beter beheren van uw systeem, aangezien grote bestanden invloed hebben op de prestaties van uw systeem. Naast het tellen van eigenschappen, kunt u ook de lengte en grootte van objecten meten via de Measure-Object
cmdlet.
Voer de onderstaande code uit om alle bestanden in de huidige map op te halen (Get-ChildItem
) en hun respectievelijke lengtes standaard in bytes weer te geven (Write-Host
).
De onderstaande code geeft elke meting weer op de console, inclusief de minimale en maximale bestandsgroottes, de gemiddelde bestandsgrootte, de som van bestandsgroottes en het totale aantal bestanden.
Hieronder zie je de groottes weergegeven in bytes.

Misschien is het plakken van de code in de console niet jouw ding. Zo ja, sla de code op in een PowerShell-scriptbestand en voer het uit.
Voer nu de volgende opdrachten uit om een bestand te krijgen in de huidige map, waarvan de grootte ($_.Length
) gelijk is (-eq
) aan de maximale bestandsgrootte ($files.Maximum
).
De uitvoer hieronder toont de naam van het grootste bestand in de huidige map.

Het meten van de inhoud van tekstbestanden
In plaats van bestandsgroottes te meten, moet je mogelijk het aantal regels, woorden of tekens in een tekstbestand bepalen. Als dat het geval is, heeft het Measure-Object
-cmdlet veel andere parameters om de inhoud van tekstbestanden te meten.
Voer de onderstaande code uit om de inhoud van het tekstbestand te meten (Measure-Object
) op basis van -Character
, -Line
en -Word
, en geef de metingen weer (Write-Host
).
Zorg ervoor dat je de waarden van de variabelen $file_path
en $file_content
wijzigt naar jouw voorkeur.

Boolean Waarden Meten
Boolean-waarden zijn waarden die alleen waar of onwaar kunnen zijn. In PowerShell worden Boolean-waarden vaak gebruikt om de stroom van een script te regelen, een voorwaarde te bepalen (waar of onwaar) of het succes of falen van een opdracht aan te geven.
Het meten van Boolean-waarden kan nuttig zijn in verschillende scenario’s, zoals:
- Het tellen van het aantal waarheids- of onwaarheidswaarden in een dataset.
- Het bepalen van het percentage waarheidswaarden ten opzichte van het totale aantal waarden.
Deze informatie kan helpen bij het nemen van weloverwogen beslissingen bij het verwerken of analyseren van gegevens.
Om te zien hoe het meten van Boolean-waarden werkt:
Voer de volgende opdrachten uit om de som van Booleaanse waarden (standaard waarheidswaarden) in de array ($values
) te tellen.
Hieronder is het totale Telling van de Booleaanse waarden negen (9), terwijl de Som vijf (5) is omdat alleen de ware waarden worden geteld.
En de onware waarden? Ga naar de volgende stap en voer nog een paar opdrachten uit.

Voer nu de onderstaande code uit om de som van ware waarden ($trueCount
) af te trekken van het totale aantal Booleaanse waarden ($count
). Het verschil van de vergelijking is het totaal van onware waarden ($falseCount
).

Als het meten van Booleaanse waarden een dagelijkse taak is, kunt u een functie maken die u op elk moment kunt aanroepen om de taak uit te voeren.
Het meten van Hashtables
Hashtables in PowerShell (een verzameling sleutel-waardeparen) stellen u in staat om gegevens snel en efficiënt op te slaan en op te halen. Als u het aantal items in een hashtable nodig heeft of de maximale en minimale waarden, laat dan de Measure-Object
cmdlet uw hashtables meten.
Voer de onderstaande commando’s uit om de Num
-eigenschap met de -Minimum
– en -Maximum
-waarden in uw hashtable ($MyHastable
) te vinden.

Het meten van Standaarddeviaties
Het controleren van gegevensreeksen kan langdradig zijn, maar dat hoeft niet zo te zijn. Het meten van de standaarddeviatie is handig bij het begrijpen van de verdeling van waarden in een gegevensset. U kunt ook eventuele uitschieters of ongebruikelijke gegevenspunten identificeren die van invloed zijn op de resultaten.
De standaarddeviatie meet de variatie of verspreiding van waarden in een gegevensset ten opzichte van het gemiddelde. Deze meting wordt berekend door de wortel te vinden van de variantie van de gegevens, wat het gemiddelde is van de gekwadrateerde verschillen van het gemiddelde.
Voer de onderstaande code uit om het gemiddelde en de standaarddeviatie van een reeks getallen opgeslagen in de variabele $Numbers
te berekenen en weer te geven.
In de statistiek meet het gemiddelde de centrale neiging en beschrijft het de typische of meest representatieve waarde van een gegevensset.
Het gemiddelde wordt berekend door alle getallen in een gegevensset op te tellen en te delen door het totale aantal waarden. In dit voorbeeld is de gegevensset {10
, 20
, 30
, 40
, 50
} met een som van 150, en er zijn vijf getallen (5
) in de set.
Als gevolg daarvan wordt hieronder het gemiddelde berekend, dat 30
is.
Aan de andere kant meet de standaarddeviatie de spreiding of verspreiding van een reeks gegevens. De standaarddeviatie wordt als volgt berekend:

Conclusie
Het meten van gegevens is een essentiële taak, en de PowerShell Measure-Object
cmdlet is een krachtig hulpmiddel om de taak te volbrengen. En in deze tutorial heb je geleerd hoe je gegevens op vele manieren kunt meten. Of je nu werkt met bestanden, tekstbestandsinhoud, booleaanse waarden, strings, arrays of hashtables, het meten ervan kan waardevolle inzichten bieden.
Nu kun je eenvoudig het gemiddelde, maximum en minimum van je gegevens berekenen en de variatie of spreiding van je gegevens meten. Met deze functies kun je een dieper inzicht krijgen in je gegevens en op basis van je analyse weloverwogen beslissingen nemen.
Met deze nieuwe kennis, waarom zou je dan niet je PowerShell-toolkit uitbreiden en Compare-Object
toevoegen aan je arsenaal?
Source:
https://adamtheautomator.com/powershell-measure-object/