Get-Random
Hämtar ett slumpmässigt tal eller väljer objekt slumpmässigt från en samling.
Syntax
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Description
Cmdleten Get-Random
hämtar ett slumpmässigt valt tal. Om du skickar en samling objekt till Get-Random
hämtar den ett eller flera slumpmässigt markerade objekt från samlingen.
Utan parametrar eller indata returnerar ett Get-Random
kommando ett slumpmässigt valt 32-bitars osignerat heltal mellan 0 (noll) och Int32.MaxValue (0x7FFFFFFF
, 2,147,483,647
).
Du kan använda parametrarna Get-Random
för för att ange ett startvärde, lägsta och högsta värden och antalet objekt som returneras från en skickad samling.
Exempel
Exempel 1: Hämta ett slumpmässigt heltal
Det här kommandot hämtar ett slumpmässigt heltal mellan 0 (noll) och Int32.MaxValue.
Get-Random
3951433
Exempel 2: Hämta ett slumpmässigt heltal mellan 0 och 99
Get-Random -Maximum 100
47
Exempel 3: Hämta ett slumpmässigt heltal mellan -100 och 99
Get-Random -Minimum -100 -Maximum 100
56
Exempel 4: Hämta ett slumpmässigt flyttalsnummer
Det här kommandot hämtar ett slumpmässigt flyttal som är större än eller lika med 10,7 och mindre än 20,92.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Exempel 5: Hämta ett slumpmässigt heltal från en matris
Det här kommandot hämtar ett slumpmässigt valt tal från den angivna matrisen.
1, 2, 3, 5, 8, 13 | Get-Random
8
Exempel 6: Hämta flera slumpmässiga heltal från en matris
Det här kommandot hämtar tre slumpmässigt valda tal i slumpmässig ordning från en matris.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Exempel 7: Randomisera en hel samling
Det här kommandot returnerar hela samlingen i slumpmässig ordning.
Värdet för parametern Count är den statiska egenskapen MaxValue för heltal.
Om du vill returnera en hel samling i slumpmässig ordning anger du ett tal som är större än eller lika med antalet objekt i samlingen.
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
2
3
5
1
8
13
Exempel 8: Hämta ett slumpmässigt icke-numeriskt värde
Det här kommandot returnerar ett slumpmässigt värde från en icke-numerisk samling.
"red", "yellow", "blue" | Get-Random
yellow
Exempel 9: Använd parametern SetSeed
Det här exemplet visar effekten av att använda parametern SetSeed .
Eftersom SetSeed genererar icke-slumpmässigt beteende används det vanligtvis bara för att återskapa resultat, till exempel vid felsökning eller analys av ett skript.
# Commands with the default seed are pseudorandom
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
74
56
84
46
# Commands with the same seed are not random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
74
74
74
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
74
56
84
46
Exempel 10: Hämta slumpmässiga filer
Dessa kommandon får ett slumpmässigt valt exempel på 50 filer från enheten på C:
den lokala datorn.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Exempel 11: Kasta rättvisa tärningar
Det här exemplet rullar en rättvis tärning 1200 gånger och räknar resultatet. Det första kommandot For-EachObject
upprepar anropet till Get-Random
från piped i tal (1-6). Resultaten grupperas efter deras värde med Group-Object
och formateras som en tabell med Select-Object
.
1..1200 | ForEach-Object {
1..6 | Get-Random
} | Group-Object | Select-Object Name,Count
Name Count
---- -----
1 206
2 199
3 196
4 226
5 185
6 188
Parametrar
-Count
Anger antalet slumpmässiga objekt eller tal som ska returneras. Standard är 1.
När det används med InputObject
returnerar alla objekt i slumpmässig ordning om värdet för Antal överskrider antalet objekt i samlingen Get-Random
.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Anger en samling objekt. Get-Random
hämtar slumpmässigt markerade objekt i slumpmässig ordning från samlingen upp till det tal som anges av Antal. Ange objekten, en variabel som innehåller objekten eller ett kommando eller uttryck som hämtar objekten. Du kan också skicka en samling objekt till Get-Random
.
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Maximum
Anger ett högsta värde för det slumpmässiga talet. Get-Random
returnerar ett värde som är mindre än det högsta värdet (inte lika med). Ange ett heltal, ett flyttal med dubbel precision eller ett objekt som kan konverteras till ett heltal eller dubbelt, till exempel en numerisk sträng ("100").
Värdet för Maximum måste vara större än (inte lika med) värdet för Minimum. Om värdet för Maximum eller Minimum är ett flyttalsnummer Get-Random
returnerar ett slumpmässigt valt flyttalsnummer.
Om värdet Minimum är ett 32-bitars heltal på en 64-bitars dator är standardvärdet För HögstaInt32.MaxValue.
Om värdet för Minimum är en dubbel (ett flyttalsnummer) är standardvärdet För MaximumDouble.MaxValue. Annars är standardvärdet Int32.MaxValue.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Minimum
Anger ett minsta värde för det slumpmässiga talet. Ange ett heltal, ett flyttal med dubbel precision eller ett objekt som kan konverteras till ett heltal eller dubbelt, till exempel en numerisk sträng ("100"). Standardvärdet är 0 (noll).
Värdet för Minimum måste vara mindre än (inte lika med) värdet för Maximum. Om värdet för Maximum eller Minimum är ett flyttalsnummer Get-Random
returnerar ett slumpmässigt valt flyttalsnummer.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SetSeed
Anger ett startvärde för slumptalsgeneratorn. Det här startvärdet används för det aktuella kommandot och för alla efterföljande Get-Random
kommandon i den aktuella sessionen tills du använder SetSeed igen eller stänger sessionen. Du kan inte återställa fröet till dess standardvärde.
Parametern SetSeed krävs inte. Som standard Get-Random
använder metoden RandomNumberGenerator() för att generera ett seed-värde. Eftersom SetSeed resulterar i icke-slumpmässigt beteende används det vanligtvis bara när du försöker återskapa beteendet, till exempel när du felsöker eller analyserar ett skript som innehåller Get-Random
kommandon.
Type: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka ett eller flera objekt. Get-Random
väljer värden slumpmässigt från piped-objekten.
Utdata
System.Int32, System.Int64, System.Double
Get-Random
returnerar ett heltal eller flyttalsnummer, eller ett objekt som valts slumpmässigt från en skickad samling.
Kommentarer
Get-Random
anger ett standardutvärde för varje session baserat på systemets tidsklocka när sessionen startar.
Get-Random
returnerar inte alltid samma datatyp som indatavärdet. I följande tabell visas utdatatypen för var och en av de numeriska indatatyperna.
Indatatyp | Utdatatyp |
---|---|
SByte | Double |
Byte | Double |
Int16 | Double |
UInt16 | Double |
Int32 | Int32 |
UInt32 | Double |
Int64 | Int64 |
UInt64 | Double |
Double | Double |
Enkel | Double |
Från och med Windows PowerShell 3.0 har Get-Random
stöd för 64-bitars heltal. I Windows PowerShell 2.0 omvandlas alla värden till System.Int32.