Get-Random
Véletlenszerű számot kap, vagy véletlenszerűen választ ki objektumokat egy gyűjteményből.
Syntax
RandomNumberParameterSet (Alapértelmezett)
Get-Random
[[-Maximum] <Object>]
[-SetSeed <Int32>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
RandomListItemParameterSet
Get-Random
[-InputObject] <Object[]>
[-SetSeed <Int32>]
[-Count <Int32>]
[<CommonParameters>]
ShuffleParameterSet
Get-Random
[-InputObject] <Object[]>
[-SetSeed <Int32>]
[-Shuffle]
[<CommonParameters>]
Description
A Get-Random parancsmag véletlenszerűen kiválasztott számot kap. Ha objektumgyűjteményt küld Get-Random, az egy vagy több véletlenszerűen kiválasztott objektumot kap a gyűjteményből.
Paraméterek és bemenet nélkül a Get-Random parancs véletlenszerűen kiválasztott 32 bites, előjel nélküli egész számot ad vissza 0 (nulla) és [int32]::MaxValueközött.
A Get-Random paramétereivel megadhatja a minimális és maximális értékeket, a gyűjteményből visszaadott objektumok számát vagy a magszámot.
Figyelmeztetés
Get-Random nem biztosítja a kriptográfiailag biztonságos véletlenszerűséget. A rendszer a kezdőértéket az aktuális parancshoz és az aktuális munkamenet minden további Get-Random parancsához használja, amíg újra nem használja SetSeed vagy zárja be a munkamenetet. Nem állíthatja vissza a magot az alapértelmezett értékre.
A mag szándékos beállítása nem véletlenszerű, megismételhető viselkedést eredményez. Csak a viselkedés reprodukálására használható, például Get-Random parancsokat tartalmazó szkriptek hibakereséséhez vagy elemzéséhez. Vegye figyelembe, hogy a magértéket más kód is beállíthatja ugyanabban a munkamenetben, például egy importált modulban.
A PowerShell 7.4 tartalmazza Get-SecureRandom, amely kriptográfiailag biztonságos véletlenszerűséget biztosít.
Példák
1. példa: Véletlenszerű egész szám lekérése
Ez a parancs véletlenszerű egész számot kap 0 (nulla) és Int32.MaxValueközött.
Get-Random
3951433
2. példa: Véletlenszerű egész szám lekérése 0 és 99 között
Get-Random -Maximum 100
47
3. példa: Véletlenszerű egész szám lekérése -100 és 99 között
Get-Random -Minimum -100 -Maximum 100
56
4. példa: Véletlenszerű lebegőpontos szám lekérése
Ez a parancs egy véletlenszerű lebegőpontos számot kap, amely nagyobb vagy egyenlő 10,7-nél, és kisebb, mint 20,93.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
5. példa: Véletlenszerű egész szám lekérése tömbből
Ez a parancs véletlenszerűen kiválasztott számot kap a megadott tömbből.
1, 2, 3, 5, 8, 13 | Get-Random
8
6. példa: Több véletlenszerű egész szám lekérése tömbből
Ez a parancs három véletlenszerűen kiválasztott számot kap véletlenszerű sorrendben egy tömbből.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
7. példa: Teljes gyűjtemény véletlenszerűsítése
A PowerShell 7.1-től kezdve a Shuffle paraméterrel véletlenszerű sorrendben adja vissza a teljes gyűjteményt.
1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
2
3
5
1
8
13
8. példa: Véletlenszerű nem numerikus érték lekérése
Ez a parancs véletlenszerű értéket ad vissza egy nem numerikus gyűjteményből.
"red", "yellow", "blue" | Get-Random
yellow
9. példa: A SetSeed paraméter használata
Ez a példa a SetSeed paraméter használatát mutatja be.
Mivel SetSeed nem véletlenszerű viselkedést eredményez, általában csak az eredmények reprodukálására használják, például szkriptek hibakereséséhez vagy elemzéséhez.
# 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
10. példa: Véletlenszerű fájlok lekérése
Ezek a parancsok véletlenszerűen kiválasztott 50 fájlból álló mintát kapnak a helyi számítógép C: meghajtójáról.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
11. példa: Dobókockák
Ez a példa 1200-szor dob egy tisztességes die-t, és megszámolja az eredményeket. Az első parancs, ForEach-Object megismétli a Get-Random hívását a csöves számokkal (1-6). Az eredmények Group-Object és Select-Objecttáblázatként vannak csoportosítva.
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
12. példa: A Darabszám paraméter használata
Most már használhatja a Count paramétert anélkül, hogy az objektumokat az Get-Random.
Az alábbi példa három 10-nél kisebb véletlenszerű számot kap.
Get-Random -Count 3 -Maximum 10
9
0
8
13. példa: Az InputObject paraméter használata üres sztringgel vagy $null
Ebben a példában az InputObject paraméter egy üres sztringet ('') és $nulltartalmazó tömböt határoz meg.
Get-Random -InputObject @('a','',$null)
Get-Random
a, üres sztringet vagy $nullad vissza. Az üres sztring üres sorként jelenik meg, és $null egy PowerShell-parancssorba tér vissza.
Paraméterek
-Count
Megadja a visszaadni kívánt véletlenszerű objektumok számát. Az alapértelmezett érték 1.
Gyűjteményt tartalmazó InputObject esetén:
- A véletlenszerűen kiválasztott elemek csak egyszer lesznek visszaadva.
- Ha a Darabszám értéke meghaladja a gyűjteményben lévő objektumok számát, a rendszer véletlenszerű sorrendben adja vissza a gyűjtemény összes objektumát.
Paramétertulajdonságok
| Típus: | Int32 |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
RandomNumberParameterSet
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
RandomListItemParameterSet
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-InputObject
Objektumgyűjteményt ad meg.
Get-Random véletlenszerűen kiválasztott objektumokat kap véletlenszerű sorrendben a gyűjteménytől a Darabszámáltal megadott számig. Adja meg az objektumokat, az objektumokat tartalmazó változót, vagy az objektumokat lekérő parancsot vagy kifejezést. Objektumgyűjteményt is becsúszthat Get-Random.
A PowerShell 7-től kezdődően a InputObject paraméter üres sztringet vagy $nulltartalmazó tömböket fogad el. A tömb elküldhető a folyamatról, vagy InputObject paraméterértékként.
Paramétertulajdonságok
| Típus: | Object[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
RandomListItemParameterSet
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
ShuffleParameterSet
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Maximum
A véletlenszerű szám maximális értékét adja meg.
Get-Random a maximálisnál kisebb (nem egyenlő) értéket ad vissza. Adjon meg egy egész számot, egy dupla pontosságú lebegőpontos számot, vagy egy olyan objektumot, amely egész számmá vagy kettőssé alakítható át, például numerikus sztringet ("100").
A Maximális értékének nagyobbnak kell lennie Minimálisértékénél (nem egyenlő). Ha a Maximális vagy Minimális értéke lebegőpontos szám, Get-Random véletlenszerűen kiválasztott lebegőpontos számot ad vissza.
64 bites számítógépen, ha a Minimális értéke 32 bites egész szám, a Maximális alapértelmezett értéke Int32.MaxValue.
Ha a Minimális értéke kettős (lebegőpontos szám), akkor a Maximális alapértelmezett értéke a Double.MaxValue . Ellenkező esetben az alapértelmezett érték Int32.MaxValue.
Paramétertulajdonságok
| Típus: | Object |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
RandomNumberParameterSet
| Position: | 0 |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Minimum
A véletlenszerű szám minimális értékét adja meg. Adjon meg egy egész számot, egy dupla pontosságú lebegőpontos számot, vagy egy olyan objektumot, amely egész számmá vagy kettőssé alakítható át, például numerikus sztringet ("100"). Az alapértelmezett érték 0 (nulla).
A Minimális értékének kisebbnek kell lennie Maximálisértékénél (nem egyenlő). Ha a Maximális vagy Minimális értéke lebegőpontos szám, Get-Random véletlenszerűen kiválasztott lebegőpontos számot ad vissza.
Paramétertulajdonságok
| Típus: | Object |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
RandomNumberParameterSet
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-SetSeed
A véletlenszerű számgenerátor kezdőértékét adja meg. Ha SetSeedhasznál, a parancsmag álnevesítési számokat hoz létre, amelyek nem kriptográfiailag biztonságosak.
Figyelmeztetés
A mag beállítása nem véletlenszerű viselkedést eredményez. Csak a viselkedés reprodukálására használható, például Get-Random parancsokat tartalmazó szkriptek hibakereséséhez vagy elemzéséhez.
Ezt a kezdőértéket az aktuális parancshoz és az aktuális munkamenet minden további Get-Random parancsához használja, amíg a SetSeed újra nem használja, vagy be nem zárja a munkamenetet. Nem állíthatja vissza a magot az alapértelmezett értékre.
Paramétertulajdonságok
| Típus: | |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Shuffle
A teljes gyűjteményt véletlenszerű sorrendben adja vissza.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
ShuffleParameterSet
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
Object
A parancsmaghoz bármilyen objektumot csövezhet. Véletlenszerűen választ ki értékeket a piped objektumokból.
Kimenetek
Int32
Int64
Double
PSObject
Ez a parancsmag egy egész számot vagy lebegőpontos számot ad vissza, vagy egy elküldött gyűjteményből véletlenszerűen kiválasztott objektumot.
Jegyzetek
Get-Random nem mindig ugyanazt az adattípust adja vissza, mint a bemeneti érték. Az alábbi táblázat az egyes numerikus bemeneti típusok kimeneti típusát mutatja.
| Bemeneti típus | Kimeneti típus |
|---|---|
| SByte | Kétszer |
| Bájt | Kétszer |
| Int16 | Kétszer |
| UInt16 | Kétszer |
| Int32 | Int32 |
| UInt32 | Kétszer |
| Int64 | Int64 |
| UInt64 | Kétszer |
| Kétszer | Kétszer |
| Egyedülálló | Kétszer |
A Windows PowerShell 3.0-tól kezdve Get-Random támogatja a 64 bites egész számokat. A Windows PowerShell 2.0-ban minden érték a System.Int32 .
A PowerShell 7-től kezdődően a InputObject paraméter a RandomListItemParameterSet paraméterkészletben üres sztringet vagy $nulltartalmazó tömböket fogad el. A korábbi PowerShell-verziókban csak a RandomNumberParameterSet paraméterkészlet Maximális paramétere fogadott el üres sztringet vagy $null.