Get-Random
Hiermee haalt u een willekeurig getal op of selecteert u willekeurig objecten uit een verzameling.
Syntax
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Shuffle]
[<CommonParameters>]
Description
De Get-Random
cmdlet krijgt een willekeurig geselecteerd nummer. Als u een verzameling objecten verzendt naar Get-Random
, 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-nummer op te geven.
Waarschuwing
Get-Random
zorgt niet voor cryptografisch veilige willekeurigheid. 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 de seed-waarde niet opnieuw instellen op de standaardwaarde.
Het opzettelijk instellen van de seed resulteert in niet-willekeurig, herhaalbaar gedrag. Het moet alleen worden gebruikt bij het reproduceren van gedrag, zoals bij het opsporen van fouten of het analyseren van een script dat opdrachten bevat Get-Random
. 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 cryptografisch veilige willekeurigheid.
Voorbeelden
Voorbeeld 1: een willekeurig geheel getal ophalen
Met deze opdracht krijgt u 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 tussen -100 en 99 ophalen
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 uit de opgegeven matrix opgehaald.
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 opgehaald uit een matrix.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Voorbeeld 7: Een hele verzameling willekeurig maken
Vanaf PowerShell 7.1 kunt u de parameter Shuffle gebruiken om de hele verzameling in een willekeurige volgorde te retourneren.
1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
2
3
5
1
8
13
Voorbeeld 8: een willekeurige niet-numerieke waarde ophalen
Deze opdracht retourneert een willekeurige waarde uit een niet-numerieke verzameling.
"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 het doorgaans alleen gebruikt voor het reproduceren van resultaten, 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 wordt een willekeurig geselecteerd voorbeeld van 50 bestanden opgehaald van het C:
station van de lokale computer.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Voorbeeld 11: Rol fair dobbelstenen
In dit voorbeeld wordt een eerlijke dobbelsteen 1200 keer geroeld en worden de resultaten geteld. De eerste opdracht ForEach-Object
herhaalt de aanroep naar Get-Random
van de doorgesluisde getallen (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
Voorbeeld 12: De parameter Count gebruiken
U kunt nu de parameter Count gebruiken zonder objecten door te sluisen naar Get-Random
.
In het volgende voorbeeld worden drie willekeurige getallen van minder dan 10 weergegeven.
Get-Random -Count 3 -Maximum 10
9
0
8
Voorbeeld 13: de parameter InputObject gebruiken met een lege tekenreeks of $null
In dit voorbeeld geeft de parameter InputObject een matrix op die een lege tekenreeks (''
) en $null
bevat.
Get-Random -InputObject @('a','',$null)
Get-Random
retourneert , a
lege tekenreeks of $null
. De lege steek wordt weergegeven als een lege regel en $null
keert terug naar een PowerShell-prompt.
Parameters
-Count
Hiermee geeft u het aantal willekeurige objecten op dat moet worden geretourneerd. De standaardwaarde is 1.
Bij gebruik met InputObject
een verzameling:
- Elk willekeurig geselecteerd item wordt slechts eenmaal geretourneerd.
- Als de waarde van Aantal groter is dan het aantal objecten in de verzameling, worden alle objecten in de verzameling in willekeurige volgorde geretourneerd.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Hiermee geeft u een verzameling objecten op. Get-Random
krijgt willekeurig geselecteerde objecten in willekeurige volgorde van de verzameling tot het aantal dat is opgegeven door Aantal. Voer de objecten in, een variabele die de objecten bevat of een opdracht of expressie waarmee de objecten worden opgehaald. U kunt ook een verzameling objecten doorsnijden naar Get-Random
.
Vanaf PowerShell 7 accepteert de parameter InputObject matrices die een lege tekenreeks of $null
kunnen bevatten. De matrix kan worden verzonden naar de pijplijn of als een InputObject-parameterwaarde .
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Maximum
Hiermee geeft u een maximumwaarde voor het willekeurige getal. Get-Random
retourneert een waarde die kleiner is dan het maximum (niet gelijk). Voer een geheel getal, een drijvendekommagetal met dubbele precisie of een object in dat kan worden geconverteerd naar een geheel getal of een dubbel getal, 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 getal met drijvende komma is, Get-Random
wordt een willekeurig geselecteerd drijvendekommagetal geretourneerd.
Als op een 64-bits computer de waarde van Minimum een geheel getal van 32 bits is, is de standaardwaarde MaximumInt32.MaxValue.
Als de waarde van Minimum een dubbele waarde is (een getal met drijvende komma), is de standaardwaarde van MaximumDouble.MaxValue. Anders is de standaardwaarde Int32.MaxValue.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 een dubbel getal, 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 getal met drijvende komma is, Get-Random
wordt een willekeurig geselecteerd drijvendekommagetal geretourneerd.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SetSeed
Hiermee geeft u een seed-waarde voor de generator voor willekeurige getallen. Wanneer u SetSeed gebruikt, genereert de cmdlet pseudorandom-getallen, wat cryptografisch niet veilig is.
Waarschuwing
Het instellen van de seed resulteert in niet-willekeurig gedrag. Deze moet alleen worden gebruikt bij het reproduceren van gedrag, zoals bij het opsporen van fouten of het analyseren van een script dat opdrachten bevat Get-Random
.
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 de seed niet opnieuw instellen op de standaardwaarde.
Type: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Shuffle
Retourneert de hele verzameling in een willekeurige volgorde.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
U kunt elk object doorsnijden naar deze cmdlet. Er worden willekeurig waarden geselecteerd uit de doorgesluisde objecten.
Uitvoerwaarden
Deze cmdlet retourneert een geheel getal of drijvendekommagetal, 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 |
Enkelvoudig | Dubbel |
Vanaf Windows PowerShell 3.0 worden Get-Random
64-bits gehele getallen ondersteund. In Windows PowerShell 2.0 worden alle waarden naar System.Int32 gecast.
Vanaf PowerShell 7 accepteert de parameter InputObject in de parameterset RandomListItemParameterSet matrices die een lege tekenreeks of $null
bevatten. In eerdere Versies van PowerShell heeft alleen de parameter Maximum in de parameterset RandomNumberParameterSet een lege tekenreeks of $null
geaccepteerd.