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 egy objektumgyűjteményt Get-Random
küld be, 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 egy véletlenszerűen kiválasztott, 32 bites, alá nem írt egész számot ad vissza 0 (nulla) és [int32]::MaxValue
.
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 a magszámot.
Figyelemfelhívá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 a SetSeed parancsot , vagy be nem zárja 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 parancsokat tartalmazó Get-Random
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
a kriptográfiailag biztonságos véletlenszerűséget.
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 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ának hatásá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
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 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: 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 hívást Get-Random
a vezetékes számból (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 Darabszám paraméter használata
Most már használhatja a Count paramétert anélkül, hogy az objektumokat piping objektumokkal szeretné használni 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 $null
egy tömböt határoz meg.
Get-Random -InputObject @('a','',$null)
Get-Random
üres sztringet a
vagy $null
. Az üres szúrás üres sorként jelenik meg, és $null
visszakerül egy PowerShell-parancssorba.
Paraméterek
-Count
Megadja a visszaadni kívánt véletlenszerű objektumok számát. Az alapértelmezett érték 1.
InputObject
Gyűjtemények 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.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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. Objektumok gyűjteményét is becsúszthatja.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 keresztül vagy InputObject paraméterértékként.
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Maximum
A véletlenszerű szám maximális értékét adja meg. Get-Random
Olyan értéket ad vissza, amely kisebb, mint a maximális érték (nem egyenlő). 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 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éke 32 bites egész szám, akkor a Maximumalapértelmezett értéke az Int32.MaxValue.
Ha a Minimum értéke dupla (lebegőpontos szám), akkor a Maximumalapértelmezett értéke Double.MaxValue. Ellenkező esetben az alapértelmezett érték az Int32.MaxValue.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 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 |
Required: | False |
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 álnevesítési számokat hoz létre, amelyek nem kriptográfiailag biztonságosak.
Figyelemfelhívá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 parancsokat tartalmazó Get-Random
szkriptek hibakereséséhez vagy elemzéséhez.
Ez a kezdő érték az aktuális parancshoz és az aktuális munkamenet minden további Get-Random
parancsához használható, amíg újra nem használja a SetSeed parancsot , vagy be nem zárja a munkamenetet. Nem állíthatja vissza a magot az alapértelmezett értékre.
Type: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Required: | False |
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 |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Bevitelek
A parancsmaghoz bármilyen objektumot csövezhet. Véletlenszerűen választ ki értékeket a piped objektumokból.
Kimenetek
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.
Bevitel típusa | Kimeneti típus |
---|---|
SByte | Dupla |
Bájt | Dupla |
Int16 | Dupla |
UInt16 | Dupla |
Int32 | Int32 |
UInt32 | Dupla |
Int64 | Int64 |
UInt64 | Dupla |
Dupla | Dupla |
Egyszeres | Dupla |
A Windows PowerShell 3.0-tól Get-Random
kezdve támogatja a 64 bites egész számokat. A Windows PowerShell 2.0-ban minden érték a System.Int32-be kerül.
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
.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: