Get-Random

Véletlenszerű számot kap, vagy véletlenszerűen választ ki objektumokat egy gyűjteményből.

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

A Get-Random parancsmag véletlenszerűen kiválasztott számot kap. Ha objektumgyűjteményt küld be, Get-Randomaz egy vagy több véletlenszerűen kijelölt objektumot kap a gyűjteményből.

Paraméterek vagy 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 az Int32.MaxValue (0x7FFFFFFF, 2,147,483,647).

Alapértelmezés szerint Get-Random kriptográfiailag biztonságos véletlenszerűséget hoz létre a RandomNumberGenerator osztály használatával.

A paraméterekkel Get-Random megadhatja a minimális és maximális értékeket, a gyűjteményből visszaadott objektumok számát vagy egy kezdőszámot.

Figyelemfelhívás

A vetőmag beállítása szándékosan nem véletlenszerű, megismételhető viselkedést eredményez. Csak akkor használható, ha a viselkedést próbálja reprodukálni, például parancsokat tartalmazó Get-Random szkriptek hibakereséséhez vagy elemzéséhez.

Ezt a kezdőértéket használja a rendszer az aktuális parancshoz és az aktuális munkamenet összes további Get-Random parancsához, amíg újra nem használja a SetSeed parancsot , vagy be nem zárja a munkamenetet. A mag nem állítható vissza az alapértelmezett értékre.

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.MaxValue kö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 10,7-nél nagyobb vagy azzal egyenlő, 20,92-nél kisebb lebegőpontos véletlenszerű számot kap.

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 a teljes gyűjteményt véletlenszerű sorrendben adhatja vissza.

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 a SetSeed nem véletlenszerű viselkedést eredményez, általában csak az eredmények reprodukálására használják, például egy szkript 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

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

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 C: helyi számítógép meghajtójáról.

$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50

11. példa: Kockadobás

Ez a példa 1200-szor dob egy igazságos die-t, és megszámolja az eredményeket. Az első parancs ForEach-Object megismétli a hívását Get-Random a függőleges vonalról számokban (1-6). Az eredmények az értékük Group-Object szerint vannak csoportosítva, és táblázatként vannak formázva a következővel 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

12. példa: A Count paraméter használata

Most már használhatja a Count paramétert anélkül, hogy az objektumokat a következőre adhatja.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 $nullegy .

Get-Random -InputObject @('a','',$null)

Get-Random A vagy aüres sztringet ad vissza, vagy $null. Az üres sting üres sorként jelenik meg, és $null visszakerül egy PowerShell-parancssorba.

Paraméterek

-Count

A visszaadandó véletlenszerű objektumok vagy számok számát adja meg. Az alapértelmezett érték 1.

InputObjectHa a count értéke meghaladja a gyűjteményben található objektumok számát, Get-Random akkor az összes objektumot véletlenszerű sorrendben adja vissza.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Objektumgyűjteményt ad meg. Get-Random A véletlenszerűen kijelölt objektumokat kap véletlenszerű sorrendben a gyűjteménybő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 átadhatja a parancsnak Get-Random.

A PowerShell 7-től kezdődően az InputObject paraméter olyan tömböket fogad el, amelyek üres sztringet vagy $null. A tömb elküldhető a folyamaton belül vagy InputObject paraméterértékként.

Type:Object[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Maximum

A véletlenszerű szám maximális értékét adja meg. Get-Random A a maximálisnál kisebb (nem egyenlő) értéket ad vissza. Írjon be egy egész számot, egy dupla pontosságú lebegőpontos számot, vagy egy egész vagy dupla típusú objektummá alakítható objektumot, például egy numerikus sztringet ("100").

A Maximum értékének nagyobbnak (nem egyenlőnek) kell lennie a Minimum értékénél. Ha a Maximum vagy a Minimum érték 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 Minimum érték 32 bites egész szám, a Maximum alapértelmezett értéke Int32.MaxValue.

Ha a Minimum értéke dupla (lebegőpontos szám), akkor a Maximum alapértelmezett értéke Double.MaxValue. Ellenkező esetben az alapértelmezett érték az Int32.MaxValue.

Type:Object
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Minimum

A véletlenszerű szám minimális értékét adja meg. Írjon be egy egész számot, egy dupla pontosságú lebegőpontos számot, vagy egy egész vagy dupla típusú objektummá alakítható objektumot, például egy numerikus sztringet ("100"). Az alapértelmezett érték 0 (nulla).

A Minimum értékének kisebbnek (nem egyenlőnek) kell lennie a Maximum értékénél. Ha a Maximum vagy a Minimum érték lebegőpontos szám, Get-Random véletlenszerűen kiválasztott lebegőpontos számot ad vissza.

Type:Object
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-SetSeed

A véletlenszerű számgenerátor kezdőértékét adja meg. A SetSeed használatakor a parancsmag a System.Random metódust használja pszeudorandom számok létrehozásához, ami nem kriptográfiailag biztonságos.

Figyelemfelhívás

A mag beállítása nem véletlenszerű viselkedést eredményez. Csak a viselkedés reprodukálásakor használható, például parancsokat tartalmazó Get-Random szkript hibakereséséhez vagy elemzéséhez.

Ezt a kezdőértéket az aktuális parancshoz és az aktuális munkamenet összes további Get-Random parancsához használja, amíg újra nem használja a SetSeed parancsot , vagy be nem zárja a munkamenetet. A mag nem állítható vissza az alapértelmezett értékre.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Shuffle

A teljes gyűjteményt véletlenszerű sorrendben adja vissza.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

Object

Egy vagy több objektumot át is helyezhet. Get-Random A véletlenszerűen választja ki az értékeket a átirányított objektumokból.

Kimenetek

System.Int32, System.Int64, System.Double

Get-Random 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

Alapértelmezés szerint Get-Random kriptográfiailag biztonságos véletlenszerűséget hoz létre a RandomNumberGenerator osztály használatával.

Get-Random A 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 be.

Bevitel típusa Kimenet típusa
SByte Dupla
Bájt Dupla
Int16 Dupla
UInt16 Dupla
Int32 Int32
UInt32 Dupla
Int64 Int64
UInt64 Dupla
Dupla Dupla
Egyirányú Dupla

A Windows PowerShell 3.0-tól Get-Random kezdődően támogatja a 64 bites egész számokat. A Windows PowerShell 2.0-ban az összes érték a System.Int32-be lesz konvertálva.

A PowerShell 7-től kezdődően a RandomListItemParameterSet paraméterkészlet InputObject paramétere üres sztringet vagy $null. A Korábbi PowerShell-verziókban csak a RandomNumberParameterSet paraméterkészlet Maximum paramétere fogadott el egy üres sztringet vagy $null.