Get-Random
Hiermee haalt u een willekeurig getal op of selecteert u objecten willekeurig uit een verzameling.
Syntaxis
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Description
De cmdlet Get-Random
haalt een willekeurig geselecteerd getal op. Als u een verzameling objecten naar Get-Random
verzendt, worden een of meer willekeurig geselecteerde objecten uit de verzameling opgehaald.
Zonder parameters of invoer retourneert een Get-Random
opdracht een willekeurig geselecteerd 32-bits geheel getal zonder teken tussen 0 (nul) en [int32]::MaxValue
.
U kunt de parameters van Get-Random
gebruiken om de minimum- en maximumwaarden, het aantal objecten dat wordt geretourneerd uit een verzameling of een seed-getal op te geven.
Voorzichtigheid
Get-Random
zorgt er niet voor dat cryptografisch willekeurige gegevens worden beveiligd. De seed-waarde wordt gebruikt voor de huidige opdracht en voor alle volgende Get-Random
opdrachten in de huidige sessie totdat u SetSeed- opnieuw gebruikt of de sessie sluit. U kunt het seed niet opnieuw instellen op de standaardwaarde.
Het doelbewust instellen van de seed resulteert in niet-willekeurig, herhaalbaar gedrag. Deze mag alleen worden gebruikt bij het reproduceren van gedrag, zoals bij het opsporen van fouten of het analyseren van een script dat Get-Random
opdrachten bevat. Houd er rekening mee dat de seed-waarde kan worden ingesteld door andere code in dezelfde sessie, zoals een geïmporteerde module.
PowerShell 7.4 bevat Get-SecureRandom
, wat zorgt voor cryptografische veilige willekeurigheid.
Voorbeelden
Voorbeeld 1: Een willekeurig geheel getal ophalen
Met deze opdracht wordt een willekeurig geheel getal tussen 0 (nul) en Int32.MaxValue.
Get-Random
3951433
Voorbeeld 2: Een willekeurig geheel getal tussen 0 en 99 ophalen
Get-Random -Maximum 100
47
Voorbeeld 3: Een willekeurig geheel getal ophalen tussen -100 en 99
Get-Random -Minimum -100 -Maximum 100
56
Voorbeeld 4: Een willekeurig drijvendekommagetal ophalen
Met deze opdracht wordt een willekeurig drijvendekommagetal groter dan of gelijk aan 10,7 en kleiner dan 20,93.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Voorbeeld 5: Een willekeurig geheel getal ophalen uit een matrix
Met deze opdracht wordt een willekeurig geselecteerd getal opgehaald uit de opgegeven matrix.
1, 2, 3, 5, 8, 13 | Get-Random
8
Voorbeeld 6: Verschillende willekeurige gehele getallen ophalen uit een matrix
Met deze opdracht worden drie willekeurig geselecteerde getallen in willekeurige volgorde uit een matrix opgehaald.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Voorbeeld 7: Een hele verzameling willekeurig maken
Met deze opdracht wordt de hele verzameling in willekeurige volgorde geretourneerd.
De waarde van de parameter Count is de MaxValue statische eigenschap van gehele getallen.
Als u een volledige verzameling in willekeurige volgorde wilt retourneren, voert u een getal in dat groter is dan of gelijk is aan het aantal objecten in de verzameling.
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
2
3
5
1
8
13
Voorbeeld 8: Een willekeurige niet-numerieke waarde ophalen
Met deze opdracht wordt een willekeurige waarde uit een niet-numerieke verzameling geretourneerd.
"red", "yellow", "blue" | Get-Random
yellow
Voorbeeld 9: de parameter SetSeed gebruiken
In dit voorbeeld ziet u het effect van het gebruik van de parameter SetSeed.
Omdat SetSeed- niet-willekeurig gedrag produceert, wordt deze doorgaans alleen gebruikt om resultaten te reproduceren, zoals bij het opsporen van fouten of het analyseren van een script.
# 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
32
25
93
95
# Commands with the same seed aren't random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
32
32
32
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
32
25
93
95
Voorbeeld 10: Willekeurige bestanden ophalen
Met deze opdrachten krijgt u een willekeurig geselecteerd voorbeeld van 50 bestanden van het C:
station van de lokale computer.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Voorbeeld 11: Roll fair dice
In dit voorbeeld wordt een fair die 1200 keer meegeteld en worden de resultaten geteld. De eerste opdracht, ForEach-Object
herhaalt de aanroep naar Get-Random
van de doorgesluisde nummers (1-6). De resultaten worden gegroepeerd op hun waarde met Group-Object
en opgemaakt als een tabel met 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
Parameters
-Count
Hiermee geeft u het aantal willekeurige objecten dat moet worden geretourneerd. De standaardwaarde is 1.
Bij gebruik met InputObject
met een verzameling:
- Elk willekeurig geselecteerd item wordt slechts één keer geretourneerd.
- Als de waarde van Count het aantal objecten in de verzameling overschrijdt, worden alle objecten in de verzameling in willekeurige volgorde geretourneerd.
Type: | Int32 |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-InputObject
Hiermee geeft u een verzameling objecten op.
Get-Random
willekeurig geselecteerde objecten in willekeurige volgorde uit de verzameling ophaalt tot het getal dat is opgegeven door Count. Voer de objecten, een variabele in die de objecten bevat, of een opdracht of expressie waarmee de objecten worden opgehaald. U kunt ook een verzameling objecten doorsluisen naar Get-Random
.
Type: | Object[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Maximum
Hiermee geeft u een maximumwaarde voor het willekeurige getal.
Get-Random
retourneert een waarde die kleiner is dan het maximum (niet gelijk aan). Voer een geheel getal, een drijvendekommagetal met dubbele precisie of een object in dat kan worden geconverteerd naar een geheel getal of dubbel, zoals een numerieke tekenreeks ('100').
De waarde van Maximum moet groter zijn dan (niet gelijk aan) de waarde van Minimum. Als de waarde van Maximum of Minimum een drijvendekommagetal is, geeft Get-Random
een willekeurig geselecteerd drijvendekommagetal als resultaat.
Als op een 64-bits computer de waarde van Minimum een 32-bits geheel getal is, is de standaardwaarde van MaximumInt32.MaxValue.
Als de waarde van Minimum een dubbele waarde is (een drijvendekommagetal), is de standaardwaarde van MaximumDouble.MaxValue. Anders wordt de standaardwaarde Int32.MaxValue.
Type: | Object |
Position: | 0 |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Minimum
Hiermee geeft u een minimumwaarde voor het willekeurige getal. Voer een geheel getal, een drijvendekommagetal met dubbele precisie of een object in dat kan worden geconverteerd naar een geheel getal of dubbel, zoals een numerieke tekenreeks ('100'). De standaardwaarde is 0 (nul).
De waarde van Minimum moet kleiner zijn dan (niet gelijk aan) de waarde van Maximum. Als de waarde van Maximum of Minimum een drijvendekommagetal is, geeft Get-Random
een willekeurig geselecteerd drijvendekommagetal als resultaat.
Type: | Object |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-SetSeed
Hiermee geeft u een seed-waarde voor de generator voor willekeurige getallen. Wanneer u SetSeed-gebruikt, genereert de cmdlet pseudorandomnummers, die niet cryptografisch beveiligd zijn.
Voorzichtigheid
Het instellen van de seed resulteert in niet-willekeurig gedrag. Deze mag alleen worden gebruikt bij het reproduceren van gedrag, zoals bij het opsporen van fouten of het analyseren van een script dat Get-Random
opdrachten bevat.
Deze seed-waarde wordt gebruikt voor de huidige opdracht en voor alle volgende Get-Random
opdrachten in de huidige sessie totdat u SetSeed- opnieuw gebruikt of de sessie sluit. U kunt het seed niet opnieuw instellen op de standaardwaarde.
Type: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt elk object doorsluisen naar deze cmdlet. Er worden willekeurig waarden uit de gesluisde objecten geselecteerd.
Uitvoerwaarden
Met deze cmdlet wordt een geheel getal of een drijvendekommagetal geretourneerd, of een object dat willekeurig is geselecteerd uit een ingediende verzameling.
Notities
Get-Random
retourneert niet altijd hetzelfde gegevenstype als de invoerwaarde. In de volgende tabel ziet u het uitvoertype voor elk van de numerieke invoertypen.
Invoertype | Uitvoertype |
---|---|
SByte | Dubbel |
Byte | Dubbel |
Int16 | Dubbel |
UInt16 | Dubbel |
Int32 | Int32 |
UInt32 | Dubbel |
Int64 | Int64 |
UInt64 | Dubbel |
Dubbel | Dubbel |
Ongetrouwd | Dubbel |
Vanaf Windows PowerShell 3.0 ondersteunt Get-Random
64-bits gehele getallen.