Get-Random

Získá náhodné číslo nebo vybere objekty náhodně z kolekce.

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

Rutina Get-Random získá náhodně vybrané číslo. Pokud odešlete kolekci objektů Get-Randomdo , 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 (0x7FFFFFFF, 2,147,483,647).

Ve výchozím nastavení Get-Random generuje kryptograficky zabezpečenou náhodnost pomocí RandomNumberGenerator třídy.

Parametry můžete použít Get-Random k určení minimálních a maximálních hodnot, počtu objektů vrácených z kolekce nebo počátečního čísla.

Upozornění

Nastavení počátečního souboru záměrně 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.

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 zavřete relaci. Počáteční hodnotu nemůžete obnovit na výchozí hodnotu.

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í desetinnou čárkou větší nebo rovno 10,7 a menší než 20,92.

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 generuje 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

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

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: Uvedení spravedlivé kostky

Tento příklad vrátí 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 vrátí buď aprá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ů nebo čísel, které se mají vrátit. Výchozí hodnota je 1.

Při použití s InputObject, pokud hodnota Count překračuje počet objektů v kolekci, Get-Random vrátí všechny objekty v náhodném pořadí.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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ý získá objekty. Kolekci objektů můžete také pipetovat do Get-Random.

Počínaje PowerShellem 7 přijímá parametr InputObject pole, která mohou obsahovat prázdný řetězec nebo $null. Pole lze odeslat do kanálu nebo jako hodnotu parametru InputObject .

Type:Object[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters: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í desetinnou čárkou, Get-Random vrátí náhodně vybrané číslo s plovoucí desetinnou čárkou.

Pokud je hodnota Minimum na 64bitovém počítači celé číslo 32 bitů, výchozí hodnota Maximum je Int32.MaxValue.

Pokud je hodnota Minimum dvojitá (číslo s plovoucí desetinnou čárkou), výchozí hodnota Maximum je Double.MaxValue. Jinak je výchozí hodnota Int32.MaxValue.

Type:Object
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters: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í desetinnou čárkou, Get-Random vrátí náhodně vybrané číslo s plovoucí desetinnou čárkou.

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

-SetSeed

Určuje počáteční hodnotu generátoru náhodných čísel. Když použijete SetSeed, rutina používá System.Random metodu k vygenerování pseudonáhodných čísel, která nejsou kryptograficky zabezpečená.

Upozornění

Nastavení počátečního výsledku 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 zavřete relaci. Počáteční hodnotu nemůžete obnovit na výchozí hodnotu.

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

-Shuffle

Vrátí celou kolekci v randomizovaném pořadí.

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

Vstupy

Object

Jeden nebo více objektů můžete přeskakovat. Get-Random vybere hodnoty náhodně z objektů s kanály.

Výstupy

System.Int32, System.Int64, System.Double

Get-Random vrátí celé číslo nebo číslo s plovoucí desetinou čárkou nebo objekt vybraný náhodně z odeslané kolekce.

Poznámky

Ve výchozím nastavení Get-Random generuje kryptograficky zabezpečenou náhodnost pomocí RandomNumberGenerator třídy.

Get-Random nevrací vždy stejný datový typ jako vstupní hodnota. V následující tabulce je uveden výstupní typ pro každý z číselných typů vstupu.

Typ vstupu Výstupní typ
SByte dvojité
Byte dvojité
Int16 dvojité
UInt16 dvojité
Int32 Int32
UInt32 dvojité
Int64 Int64
UInt64 dvojité
dvojité dvojité
Jednoduché dvojité

Počínaje Windows PowerShell 3.0 Get-Random podporuje 64bitová celá čísla. V Windows PowerShell 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. V dřívějších verzích PowerShellu přijal prázdný řetězec nebo $nullpouze parametr Maximum v sadě parametrů RandomNumberParameterSet.