Measure-Object
Beräknar de numeriska egenskaperna för objekt och tecknen, orden och raderna i strängobjekt, till exempel filer med text.
Syntax
Measure-Object
[[-Property] <PSPropertyExpression[]>]
[-InputObject <PSObject>]
[-StandardDeviation]
[-Sum]
[-AllStats]
[-Average]
[-Maximum]
[-Minimum]
[<CommonParameters>]
Measure-Object
[[-Property] <PSPropertyExpression[]>]
[-InputObject <PSObject>]
[-Line]
[-Word]
[-Character]
[-IgnoreWhiteSpace]
[<CommonParameters>]
Description
Cmdleten Measure-Object
beräknar egenskapsvärdena för vissa typer av objekt.
Measure-Object
utför tre typer av mått, beroende på parametrarna i kommandot.
Cmdleten Measure-Object
utför beräkningar på objektens egenskapsvärden. Du kan använda Measure-Object
för att räkna objekt eller räkna objekt med en angiven egenskap. Du kan också använda Measure-Object
för att beräkna värdena Minimum, Maximum, Sum, StandardDeviation och Average för numeriska värden. För Strängobjekt kan du också använda Measure-Object
för att räkna antalet rader, ord och tecken.
Exempel
Exempel 1: Räkna filer och mappar i en katalog
Det här kommandot räknar filerna och mapparna i den aktuella katalogen.
Get-ChildItem | Measure-Object
Exempel 2: Mät filerna i en katalog
Det här kommandot visar Minimum, Maximum och Sum för storlekarna för alla filer i den aktuella katalogen och den genomsnittliga storleken för en fil i katalogen.
Get-ChildItem | Measure-Object -Property length -Minimum -Maximum -Sum -Average
Exempel 3: Mät text i en textfil
Det här kommandot visar antalet tecken, ord och rader i filen Text.txt.
Utan raw-parameternGet-Content
matar ut filen som en matris med rader.
Det första kommandot använder Set-Content
för att lägga till standardtext i en fil.
"One", "Two", "Three", "Four" | Set-Content -Path C:\Temp\tmp.txt
Get-Content C:\Temp\tmp.txt | Measure-Object -Character -Line -Word
Lines Words Characters Property
----- ----- ---------- --------
4 4 15
Exempel 4: Måttobjekt som innehåller en angiven egenskap
I det här exemplet räknas antalet objekt som har egenskapen DisplayName . De två första kommandona hämtar alla tjänster och processer på den lokala datorn. Det tredje kommandot räknar det kombinerade antalet tjänster och processer. Det sista kommandot kombinerar de två samlingarna och skickar resultatet till Measure-Object
.
Objektet System.Diagnostics.Process har ingen DisplayName-egenskap och utelämnas från det slutliga antalet.
$services = Get-Service
$processes = Get-Process
$services + $processes | Measure-Object
$services + $processes | Measure-Object -Property DisplayName
Count : 682
Average :
Sum :
Maximum :
Minimum :
Property :
Count : 290
Average :
Sum :
Maximum :
Minimum :
Property : DisplayName
Exempel 5: Mät innehållet i en CSV-fil
Det här kommandot beräknar de genomsnittliga tjänsteåren för företagets anställda.
Filen ServiceYrs.csv
är en CSV-fil som innehåller antalet anställda och tjänsteår för varje anställd. Den första raden i tabellen är en rubrikrad i EmpNo, Years.
När du använder Import-Csv
för att importera filen blir resultatet ett PSCustomObject med anteckningsegenskaperna EmpNo och Years.
Du kan använda Measure-Object
för att beräkna värdena för dessa egenskaper, precis som andra egenskaper för ett objekt.
Import-Csv d:\test\serviceyrs.csv | Measure-Object -Property years -Minimum -Maximum -Average
Exempel 6: Mät booleska värden
Det här exemplet visar hur Measure-Object
kan mäta booleska värden.
I det här fallet används den booleska egenskapen PSIsContainer för att mäta förekomsten av mappar (jämfört med filer) i den aktuella katalogen.
Get-ChildItem | Measure-Object -Property psiscontainer -Maximum -Sum -Minimum -Average
Count : 126
Average : 0.0634920634920635
Sum : 8
Maximum : 1
Minimum : 0
StandardDeviation :
Property : PSIsContainer
Exempel 7: Mät strängar
I följande exempel mäts antalet rader, först en enda sträng och sedan över flera strängar. Det nya radtecknet `n
separerar strängar i flera rader.
# The newline character `n separates the string into separate lines, as shown in the output.
"One`nTwo`nThree"
"One`nTwo`nThree" | Measure-Object -Line
One
Two
Three
Lines Words Characters Property
----- ----- ---------- --------
3
# The first string counts as a single line.
# The second string is separated into two lines by the newline character.
"One", "Two`nThree" | Measure-Object -Line
Lines Words Characters Property
----- ----- ---------- --------
3
# The Word switch counts the number of words in each InputObject
# Each InputObject is treated as a single line.
"One, Two", "Three", "Four Five" | Measure-Object -Word -Line
Lines Words Characters Property
----- ----- ---------- --------
3 5
Exempel 8: Mät alla värden
Från och med PowerShell 6 kan du med parametern Measure-Object
AllStats mäta all statistik tillsammans.
1..5 | Measure-Object -AllStats
Count : 5
Average : 3
Sum : 15
Maximum : 5
Minimum : 1
StandardDeviation : 1.58113883008419
Property :
Exempel 9: Mått med hjälp av egenskaper för scriptblock
Från och med PowerShell 6 har Measure-Object
stöd för ScriptBlock-egenskaper . I följande exempel visas hur du använder en ScriptBlock-egenskap för att fastställa storleken i MB för alla filer i en katalog.
Get-ChildItem | Measure-Object -Sum {$_.Length/1MB}
Exempel 10: Måtthashtabeller
Från och med PowerShell 6 stöder Measure-Object
mätning av hashtable-indata . I följande exempel fastställs det största värdet för num
nyckeln för 3 hashtable-objekt .
@{num=3}, @{num=4}, @{num=5} | Measure-Object -Maximum Num
Count : 3
Average :
Sum :
Maximum : 5
Minimum :
StandardDeviation :
Property : num
Exempel 11: Mät standardavvikelsen
Från och med PowerShell 6 stöder Measure-Object
parametern -StandardDeviation
. I följande exempel fastställs standardavvikelsen för processorn som används av alla processer. En stor avvikelse indikerar ett litet antal processer som förbrukar mest CPU.
Get-Process | Measure-Object -Average -StandardDeviation CPU
Count : 303
Average : 163.032384488449
Sum :
Maximum :
Minimum :
StandardDeviation : 859.444048419069
Property : CPU
Exempel 12: Mät med jokertecken
Från och med PowerShell 6 stöder Measure-Object
mätning av objekt med hjälp av jokertecken i egenskapsnamn. I följande exempel avgörs det maximala antalet sidsidiga minnesanvändningar bland en uppsättning processer.
Get-Process | Measure-Object -Maximum *paged*memory*size
Count : 303
Average :
Sum :
Maximum : 735784
Minimum :
StandardDeviation :
Property : NonpagedSystemMemorySize
Count : 303
Average :
Sum :
Maximum : 352104448
Minimum :
StandardDeviation :
Property : PagedMemorySize
Count : 303
Average :
Sum :
Maximum : 2201968
Minimum :
StandardDeviation :
Property : PagedSystemMemorySize
Count : 303
Average :
Sum :
Maximum : 719032320
Minimum :
StandardDeviation :
Property : PeakPagedMemorySize
Parametrar
-AllStats
Anger att cmdleten visar all statistik för de angivna egenskaperna.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Average
Anger att cmdleten visar det genomsnittliga värdet för de angivna egenskaperna.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Character
Anger att cmdleten räknar antalet tecken i indataobjekten.
Anteckning
Växlarna Word, Char och Line räknas inuti varje indataobjekt samt mellan indataobjekt. Se exempel 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IgnoreWhiteSpace
Anger att cmdleten ignorerar tomt utrymme i antalet tecken. Som standard ignoreras inte tomt utrymme.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Anger vilka objekt som ska mätas. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten.
När du använder parametern InputObject med Measure-Object
, i stället för att skicka kommandoresultat till Measure-Object
, behandlas InputObject-värdet som ett enda objekt.
Vi rekommenderar att du använder Measure-Object
i pipelinen om du vill mäta en samling objekt baserat på om objekten har specifika värden i definierade egenskaper.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Line
Anger att cmdleten räknar antalet rader i indataobjekten.
Anteckning
Växlarna Word, Char och Line räknas inuti varje indataobjekt samt mellan indataobjekt. Se exempel 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Maximum
Anger att cmdleten visar det maximala värdet för de angivna egenskaperna.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Minimum
Anger att cmdleten visar det minsta värdet för de angivna egenskaperna.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
Anger en eller flera egenskaper som ska mätas. Om du inte anger några andra mått Measure-Object
räknas de objekt som har de egenskaper som du anger.
Värdet för parametern Egenskap kan vara en ny beräknad egenskap. Den beräknade egenskapen måste vara ett skriptblock. Mer information finns i about_Calculated_Properties.
Type: | PSPropertyExpression[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-StandardDeviation
Anger att cmdleten visar standardavvikelsen för värdena för de angivna egenskaperna.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Sum
Anger att cmdleten visar summan av värdena för de angivna egenskaperna.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Word
Anger att cmdleten räknar antalet ord i indataobjekten.
Anteckning
Växlarna Word, Char och Line räknas inuti varje indataobjekt samt mellan indataobjekt. Se exempel 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka objekt till den här cmdleten.
Utdata
Som standard returnerar denna cmdlet ett GenericMeasureInfo-objekt .
När du använder parametern Word returnerar den här cmdleten ett TextMeasureInfo-objekt.
Kommentarer
PowerShell innehåller följande alias för Measure-Object
:
- Alla plattformar:
measure
Från och med PowerShell 7.3 Measure-Object
returneras inte längre ett fel när du bearbetar ett objekt som saknar egenskapen som mäts om du inte kör i StrictMode. I StrictModeMeasure-Object
returnerar en System.Management.Automation.PSArgumentException
när du bearbetar ett objekt som saknar den angivna egenskapen.