Get-Random
Získá náhodné číslo nebo vybere objekty náhodně z kolekce.
Syntaxe
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
Rutina Get-Random
získá náhodně vybrané číslo. Pokud odešlete kolekci objektů Get-Random
, získá jeden nebo více náhodně vybraných objektů z kolekce.
Bez parametrů nebo vstupu Get-Random
vrátí příkaz náhodně vybrané 32bitové celé číslo bez znaménka mezi 0 (nula) a [int32]::MaxValue
.
Parametry můžete použít Get-Random
k určení minimální a maximální hodnoty, počtu objektů vrácených z kolekce nebo počátečního čísla.
Upozornění
Get-Random
nezajistí kryptograficky zabezpečenou náhodnost. Počáteční hodnota se používá pro aktuální příkaz a pro všechny následné Get-Random
příkazy v aktuální relaci, dokud znovu nepoužijete SetSeed nebo relaci zavřete. Počáteční hodnotu nemůžete obnovit na výchozí hodnotu.
Záměrně nastavení počátečních hodnot vede k nenáhodným a opakovatelným chováním. Mělo by se použít pouze při pokusu o reprodukci chování, například při ladění nebo analýze skriptu, který obsahuje Get-Random
příkazy. Mějte na paměti, že počáteční hodnotu může nastavit jiný kód ve stejné relaci, například importovaný modul.
PowerShell 7.4 zahrnuje Get-SecureRandom, který zajišťuje kryptograficky zabezpečenou náhodnost.
Příklady
Příklad 1: Získání náhodného celého čísla
Tento příkaz získá náhodné celé číslo mezi 0 (nula) a Int32.MaxValue.
Get-Random
3951433
Příklad 2: Získání náhodného celého čísla mezi 0 a 99
Get-Random -Maximum 100
47
Příklad 3: Získání náhodného celého čísla mezi -100 a 99
Get-Random -Minimum -100 -Maximum 100
56
Příklad 4: Získání náhodného čísla s plovoucí desetinou čárkou
Tento příkaz získá náhodné číslo s plovoucí desetinou čárkou větší nebo rovno 10,7 a menší než 20,93.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Příklad 5: Získání náhodného celého čísla z pole
Tento příkaz získá náhodně vybrané číslo ze zadaného pole.
1, 2, 3, 5, 8, 13 | Get-Random
8
Příklad 6: Získání několika náhodných celých čísel z pole
Tento příkaz získá ze pole tři náhodně vybraná čísla v náhodném pořadí.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Příklad 7: Randomizace celé kolekce
Počínaje PowerShellem 7.1 můžete pomocí parametru Shuffle vrátit celou kolekci v náhodném pořadí.
1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
2
3
5
1
8
13
Příklad 8: Získání náhodné nečíselné hodnoty
Tento příkaz vrátí náhodnou hodnotu z nečíselné kolekce.
"red", "yellow", "blue" | Get-Random
yellow
Příklad 9: Použití parametru SetSeed
Tento příklad ukazuje účinek použití parametru SetSeed .
Vzhledem k tomu , že SetSeed vytváří nenáhodné chování, obvykle se používá pouze k reprodukování výsledků, například při ladění nebo analýze skriptu.
# 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
Příklad 10: Získání náhodných souborů
Tyto příkazy z místní jednotky získají náhodně vybraný vzorek 50 souborů C:
.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Příklad 11: Roll fair kostka
V tomto příkladu se zobrazí spravedlivé kostky 1200krát a spočítá výsledky. První příkaz ForEach-Object
zopakuje volání Get-Random
z předaných čísel (1–6). Výsledky jsou seskupené podle jejich hodnoty Group-Object
a formátovány jako tabulka s 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
Příklad 12: Použití parametru Count
Nyní můžete použít parametr Count bez propojení objektů do Get-Random
.
Následující příklad získá tři náhodná čísla menší než 10.
Get-Random -Count 3 -Maximum 10
9
0
8
Příklad 13: Použití parametru InputObject s prázdným řetězcem nebo $null
V tomto příkladu parametr InputObject určuje pole, které obsahuje prázdný řetězec (''
) a $null
.
Get-Random -InputObject @('a','',$null)
Get-Random
a
vrátí buď , prázdný řetězec, nebo $null
. Prázdné bodnutí se zobrazí jako prázdný řádek a $null
vrátí se do příkazového řádku PowerShellu.
Parametry
-Count
Určuje počet náhodných objektů, které se mají vrátit. Výchozí hodnota je 1.
Při použití s InputObject
obsahující kolekcí:
- Každá náhodně vybraná položka se vrátí pouze jednou.
- Pokud hodnota Count překročí počet objektů v kolekci, vrátí se všechny objekty v kolekci v náhodném pořadí.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-InputObject
Určuje kolekci objektů. Get-Random
získá náhodně vybrané objekty v náhodném pořadí z kolekce až do čísla určeného počtem. Zadejte objekty, proměnnou, která obsahuje objekty, nebo příkaz nebo výraz, který objekty získá. Kolekci objektů můžete také pipetovat do Get-Random
souboru .
Počínaje PowerShellem 7 přijímá parametr InputObject pole, která mohou obsahovat prázdný řetězec nebo $null
. Pole může být odesláno v kanálu nebo jako hodnota parametru InputObject .
Typ: | Object[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Maximum
Určuje maximální hodnotu náhodného čísla. Get-Random
vrátí hodnotu, která je menší než maximum (nerovná se). Zadejte celé číslo, číslo s plovoucí desetinnou čárkou s dvojitou přesností nebo objekt, který lze převést na celé číslo nebo dvojité číslo, například číselný řetězec ("100").
Hodnota Maximum musí být větší než (nerovná se) hodnotě Minimum. Pokud je hodnota Maximum nebo Minimum číslo s plovoucí desetinou čárkou, Get-Random
vrátí náhodně vybrané číslo s plovoucí desetinou čárkou.
Pokud je v 64bitovém počítači hodnota Minimum 32bitové celé číslo, výchozí hodnota Maximum je Int32.MaxValue.
Pokud je hodnota Minimum dvojitá (číslo s plovoucí desetinou čárkou), výchozí hodnota Maximum je Double.MaxValue. V opačném případě je výchozí hodnota Int32.MaxValue.
Typ: | Object |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Minimum
Určuje minimální hodnotu náhodného čísla. Zadejte celé číslo, číslo s plovoucí desetinnou čárkou s dvojitou přesností nebo objekt, který lze převést na celé číslo nebo dvojité číslo, například číselný řetězec ("100"). Výchozí hodnota je 0 (nula).
Hodnota Minimum musí být menší než (nerovná se) hodnotě Maximum. Pokud je hodnota Maximum nebo Minimum číslo s plovoucí desetinou čárkou, Get-Random
vrátí náhodně vybrané číslo s plovoucí desetinou čárkou.
Typ: | Object |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SetSeed
Určuje počáteční hodnotu generátoru náhodných čísel. Když použijete SetSeed, rutina vygeneruje pseudonáhodná čísla, která nejsou kryptograficky zabezpečená.
Upozornění
Nastavení počátečních hodnot vede k nenáhodným chováním. Mělo by se použít pouze při pokusu o reprodukci chování, například při ladění nebo analýze skriptu, který obsahuje Get-Random
příkazy.
Tato počáteční hodnota se používá pro aktuální příkaz a pro všechny následné Get-Random
příkazy v aktuální relaci, dokud znovu nepoužijete SetSeed nebo relaci zavřete. Počáteční hodnotu nemůžete obnovit na výchozí hodnotu.
Typ: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Shuffle
Vrátí celou kolekci v náhodném pořadí.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete převést libovolný objekt. Vybere hodnoty náhodně z svislých objektů.
Výstupy
Tato rutina vrátí celé číslo nebo číslo s plovoucí desetinou čárkou nebo objekt vybraný náhodně z odeslané kolekce.
Poznámky
Get-Random
nevrací vždy stejný datový typ jako vstupní hodnota. Následující tabulka uvádí výstupní typ pro každý z číselných typů vstupu.
Typ vstupu | Typ výstupu |
---|---|
SByte | Hodnota s dvojitou přesností |
Byte | Hodnota s dvojitou přesností |
Int16 | Hodnota s dvojitou přesností |
UInt16 | Hodnota s dvojitou přesností |
Int32 | Int32 |
UInt32 | Hodnota s dvojitou přesností |
Int64 | Int64 |
UInt64 | Hodnota s dvojitou přesností |
Hodnota s dvojitou přesností | Hodnota s dvojitou přesností |
Jeden | Hodnota s dvojitou přesností |
Počínaje windows PowerShellem 3.0 Get-Random
podporuje 64bitová celá čísla. Ve Windows PowerShellu 2.0 se všechny hodnoty přetypují na System.Int32.
Počínaje PowerShellem 7 přijímá parametr InputObject v sadě parametrů RandomListItemParameterSet pole obsahující prázdný řetězec nebo $null
. Ve starších verzích PowerShellu akceptoval prázdný řetězec nebo $null
pouze parametr Maximum v sadě parametrů RandomNumberParameterSet.