Get-Random
Pobiera losową liczbę lub wybiera obiekty losowo z kolekcji.
Składnia
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>]
Opis
Polecenie Get-Random
cmdlet pobiera losowo wybraną liczbę. W przypadku przesyłania kolekcji obiektów do Get-Random
obiektu program pobiera jeden lub więcej losowo wybranych obiektów z kolekcji.
Bez parametrów lub danych wejściowych Get-Random
polecenie zwraca losowo wybraną 32-bitową liczbę całkowitą bez znaku z zakresu od 0 (zero) do Int32.MaxValue (0x7FFFFFFF
, 2,147,483,647
).
Domyślnie Get-Random
program generuje kryptograficznie bezpieczną losowość przy użyciu klasy RandomNumberGenerator .
Możesz użyć parametrów Get-Random
, aby określić wartości minimalne i maksymalne, liczbę obiektów zwracanych z kolekcji lub liczbę inicjatora.
Przestroga
Ustawienie inicjatora celowo powoduje nielosowe, powtarzalne zachowanie. Należy go używać tylko podczas próby odtworzenia zachowania, takiego jak debugowanie lub analizowanie skryptu zawierającego Get-Random
polecenia.
Ta wartość inicjowana jest używana dla bieżącego polecenia i dla wszystkich kolejnych Get-Random
poleceń w bieżącej sesji do momentu ponownego użycia polecenia SetSeed lub zamknięcia sesji. Nie można zresetować inicjatora do jego wartości domyślnej.
Przykłady
Przykład 1. Pobieranie losowej liczby całkowitej
To polecenie pobiera losową liczbę całkowitą z zakresu od 0 (zero) do Int32.MaxValue.
Get-Random
3951433
Przykład 2: Pobieranie losowej liczby całkowitej z zakresu od 0 do 99
Get-Random -Maximum 100
47
Przykład 3: Pobieranie losowej liczby całkowitej z zakresu od -100 do 99
Get-Random -Minimum -100 -Maximum 100
56
Przykład 4. Pobieranie losowej liczby zmiennoprzecinkowej
To polecenie pobiera losową liczbę zmiennoprzecinkową większą lub równą 10,7 i mniejszą niż 20,92.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Przykład 5. Pobieranie losowej liczby całkowitej z tablicy
To polecenie pobiera losowo wybraną liczbę z określonej tablicy.
1, 2, 3, 5, 8, 13 | Get-Random
8
Przykład 6. Pobieranie kilku losowych liczb całkowitych z tablicy
To polecenie pobiera trzy losowo wybrane liczby w kolejności losowej z tablicy.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Przykład 7. Losowe określanie całej kolekcji
Począwszy od programu PowerShell 7.1, można użyć parametru Shuffle , aby zwrócić całą kolekcję w kolejności losowej.
1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
2
3
5
1
8
13
Przykład 8. Pobieranie losowej wartości nieliczbowej
To polecenie zwraca losową wartość z kolekcji nieliczbowej.
"red", "yellow", "blue" | Get-Random
yellow
Przykład 9. Użyj parametru SetSeed
W tym przykładzie pokazano efekt użycia parametru SetSeed .
Ponieważ ustawienie SetSeed generuje nielosowe zachowanie, zwykle służy tylko do odtwarzania wyników, takich jak podczas debugowania lub analizowania skryptu.
# 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
Przykład 10: Pobieranie losowych plików
Te polecenia pobierają losowo wybraną próbkę 50 plików z C:
dysku komputera lokalnego.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Przykład 11: Rzut kostką uczciwą
W tym przykładzie roluje fair die 1200 razy i zlicza wyniki. Pierwsze polecenie ForEach-Object
powtarza wywołanie metody Get-Random
z potoku w liczbach (1–6). Wyniki są pogrupowane według ich wartości Group-Object
i sformatowane jako tabela z 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
Przykład 12: Użyj parametru Count
Teraz można użyć parametru Count bez obiektów potokowania do .Get-Random
Poniższy przykład pobiera trzy liczby losowe mniejsze niż 10.
Get-Random -Count 3 -Maximum 10
9
0
8
Przykład 13: Użyj parametru InputObject z pustym ciągiem lub $null
W tym przykładzie parametr InputObject określa tablicę zawierającą pusty ciąg (''
) i $null
.
Get-Random -InputObject @('a','',$null)
Get-Random
polecenie zwróci a
ciąg , pusty ciąg lub $null
. Puste żądło jest wyświetlane jako pusty wiersz i $null
wraca do wiersza polecenia programu PowerShell.
Parametry
-Count
Określa liczbę losowych obiektów lub liczb do zwrócenia. Wartość domyślna to 1.
W przypadku użycia z parametrem InputObject
, jeśli wartość Count przekracza liczbę obiektów w kolekcji, Get-Random
zwraca wszystkie obiekty w kolejności losowej.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Określa kolekcję obiektów. Get-Random
pobiera losowo wybrane obiekty w kolejności losowej z kolekcji do liczby określonej przez liczbę. Wprowadź obiekty, zmienną zawierającą obiekty lub polecenie lub wyrażenie, które pobiera obiekty. Możesz również przekazać kolekcję obiektów do Get-Random
obiektu .
Począwszy od programu PowerShell 7, parametr InputObject akceptuje tablice, które mogą zawierać pusty ciąg lub $null
. Tablicę można wysłać w dół potoku lub jako wartość parametru InputObject .
Type: | Object[] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Maximum
Określa wartość maksymalną dla liczby losowej. Get-Random
Zwraca wartość mniejszą niż wartość maksymalna (nie równa się). Wprowadź liczbę całkowitą, liczbę zmiennoprzecinkową o podwójnej precyzji lub obiekt, który można przekonwertować na liczbę całkowitą lub podwójną, na przykład ciąg liczbowy ("100").
Wartość Maksimum musi być większa niż (nie równa) wartości Minimum. Jeśli wartość Maksimum lub Minimum jest liczbą zmiennoprzecinkową, Get-Random
zwraca losowo wybraną liczbę zmiennoprzecinkową.
Na komputerze 64-bitowym, jeśli wartość Minimum jest 32-bitową liczbą całkowitą, wartość domyślna maksymalna to Int32.MaxValue.
Jeśli wartość Minimum jest podwójna (liczba zmiennoprzecinkowa), wartość domyślna maksymalna to Double.MaxValue. W przeciwnym razie wartość domyślna to Int32.MaxValue.
Type: | Object |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Minimum
Określa minimalną wartość dla liczby losowej. Wprowadź liczbę całkowitą, liczbę zmiennoprzecinkową o podwójnej precyzji lub obiekt, który można przekonwertować na liczbę całkowitą lub podwójną, na przykład ciąg liczbowy ("100"). Wartością domyślną jest 0 (zero).
Wartość Minimum musi być mniejsza niż (nie równa) wartości Maksimum. Jeśli wartość Maksimum lub Minimum jest liczbą zmiennoprzecinkową, Get-Random
zwraca losowo wybraną liczbę zmiennoprzecinkową.
Type: | Object |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SetSeed
Określa wartość inicjatora generatora liczb losowych. W przypadku używania metody SetSeed polecenie cmdlet używa metody System.Random do generowania liczb pseudorandomów, które nie są kryptograficznie bezpieczne.
Przestroga
Ustawienie inicjatora powoduje nielosowe zachowanie. Należy go używać tylko podczas próby odtworzenia zachowania, takiego jak debugowanie lub analizowanie skryptu zawierającego Get-Random
polecenia.
Ta wartość inicjowana jest używana dla bieżącego polecenia i dla wszystkich kolejnych Get-Random
poleceń w bieżącej sesji do momentu ponownego użycia polecenia SetSeed lub zamknięcia sesji. Nie można zresetować inicjatora do jego wartości domyślnej.
Type: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Shuffle
Zwraca całą kolekcję w kolejności losowej.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Do tego polecenia cmdlet można przekazać dowolny obiekt. Wybiera wartości losowo z obiektów potokowych.
Dane wyjściowe
To polecenie cmdlet zwraca liczbę całkowitą lub zmiennoprzecinkową albo obiekt wybrany losowo z przesłanej kolekcji.
Uwagi
Domyślnie Get-Random
program generuje kryptograficznie bezpieczną losowość przy użyciu klasy RandomNumberGenerator .
Get-Random
nie zawsze zwraca ten sam typ danych co wartość wejściowa. W poniższej tabeli przedstawiono typ danych wyjściowych dla każdego z typów danych wejściowych liczbowych.
Typ danych wejściowych | Typ danych wyjściowych |
---|---|
SByte | Double |
Byte | Double |
Int16 | Double |
UInt16 | Double |
Int32 | Int32 |
UInt32 | Double |
Int64 | Int64 |
UInt64 | Double |
Double | Double |
Pojedynczy | Double |
Począwszy od Windows PowerShell 3.0, Get-Random
obsługuje 64-bitowe liczby całkowite. W Windows PowerShell 2.0 wszystkie wartości są rzutowane na System.Int32.
Począwszy od programu PowerShell 7 parametr InputObject w zestawie parametrów RandomListItemParameterSet akceptuje tablice zawierające pusty ciąg lub $null
. We wcześniejszych wersjach programu PowerShell tylko parametr Maximum w parametrze RandomNumberParameterSet zaakceptował pusty ciąg lub $null
.
Linki powiązane
Opinia
Prześlij i wyświetl opinię dla