Get-Random
Возвращает случайное число или случайным образом выбирает объекты из коллекции.
Синтаксис
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Описание
Командлет Get-Random
получает случайно выбранное число. Если вы отправляете коллекцию объектов в коллекцию Get-Random
, она получает один или несколько случайно выбранных объектов из коллекции.
Без параметров или входных данных Get-Random
команда возвращает случайно выбранное 32-разрядное целое число без знака от 0 (ноль) до Int32.MaxValue (0x7FFFFFFF
, 2,147,483,647
).
Параметры можно использовать для указания начального Get-Random
числа, минимального и максимального значений, а также количества объектов, возвращаемых из отправленной коллекции.
Примеры
Пример 1. Получение случайного целого числа
Эта команда получает случайное целое число от 0 до Int32.MaxValue.
Get-Random
3951433
Пример 2. Получение случайного целого числа от 0 до 99
Get-Random -Maximum 100
47
Пример 3. Получение случайного целого числа от -100 до 99
Get-Random -Minimum -100 -Maximum 100
56
Пример 4. Получение случайного числа с плавающей запятой
Эта команда возвращает случайное число с плавающей запятой, которое больше или равно 10,7 и меньше 20,92.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Пример 5. Получение случайного целого числа из массива
Эта команда возвращает случайное число из указанного массива.
1, 2, 3, 5, 8, 13 | Get-Random
8
Пример 6. Получение нескольких случайных целых чисел из массива
Эта команда получает три случайных выбранных числа в случайном порядке из массива.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Пример 7. Рандомизация всей коллекции
Эта команда возвращает всю коллекцию в случайном порядке.
Значение параметра Count является статическим свойством MaxValue целых чисел.
Чтобы вернуть всю коллекцию в случайном порядке, введите любое число, которое больше или равно количеству объектов в коллекции.
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
2
3
5
1
8
13
Пример 8. Получение случайного нечислового значения
Эта команда возвращает случайное значение из коллекции, элементы которой не являются числами.
"red", "yellow", "blue" | Get-Random
yellow
Пример 9. Использование параметра SetSeed
В этом примере показан результат применения параметра SetSeed.
Так как SetSeed создает не случайное поведение, оно обычно используется только для воспроизведения результатов, таких как при отладке или анализе скрипта.
# 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. Получение случайных файлов
Эти команды получают выборку из 50 файлов случайным образом с C:
диска локального компьютера.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Пример 11. Ролл справедливой кости
В этом примере свернута справедливая смерть 1200 раз и подсчитывает результаты. Первая команда For-EachObject
повторяет вызов Get-Random
из канала в номерах (1–6). Результаты группируются по их значению и Group-Object
форматируются как таблица с 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
Параметры
-Count
Указывает количество возвращаемых случайных объектов или чисел. Значение по умолчанию — 1.
Если значение InputObject
Count превышает число объектов в коллекции, Get-Random
возвращает все объекты в случайном порядке.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Определяет коллекцию объектов. Get-Random
возвращает случайным образом выбранные объекты в случайном порядке из коллекции до числа, указанного count. Введите объекты, переменную, содержащую объекты, либо получающую их команду или выражение. Кроме того, можно передать коллекцию Get-Random
объектов в .
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Maximum
Определяет максимальное значение случайного числа. Get-Random
возвращает значение, которое меньше максимального значения (не равно). Введите целое число, число с плавающей запятой двойной точности или объект, который можно преобразовать в целочисленное или двойное, например числовую строку ("100").
Значение Maximum должно быть больше (не равно) значения Minimum. Если значение maximum или Minimum является числом с плавающей запятой, Get-Random
возвращает случайно выбранное число с плавающей запятой.
На 64-разрядном компьютере, если значение Minimum равно 32-разрядному целым числом, значение по умолчанию — Int32.MaxValue.
Если значение Minimum равно double (число с плавающей запятой), значение по умолчанию —Double.MaxValue. В противном случае значение по умолчанию — Int32.MaxValue.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Minimum
Определяет минимальное значение случайного числа. Введите целое число, число с плавающей запятой двойной точности или объект, который можно преобразовать в целочисленное или двойное, например числовую строку ("100"). Значение по умолчанию — 0 (нуль).
Значение Minimum должно быть меньше значения Maximum. Если значение maximum или Minimum является числом с плавающей запятой, Get-Random
возвращает случайно выбранное число с плавающей запятой.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SetSeed
Определяет начальное значение случайного числа. Это начальное значение используется для текущей команды и для всех последующих Get-Random
команд в текущем сеансе, пока не будет снова использоваться SetSeed или закрыть сеанс. Вы не можете сбросить начальное значение до значения по умолчанию.
Параметр SetSeed не является обязательным. По умолчанию Get-Random
использует метод RandomNumberGenerator() для создания начального значения. Так как SetSeed приводит к не случайным поведению, оно обычно используется только при попытке воспроизвести поведение, например при отладке или анализе скрипта, включающего Get-Random
команды.
Type: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Можно передать один или несколько объектов. Get-Random
выбирает значения случайным образом из конвейерных объектов.
Выходные данные
System.Int32, System.Int64, System.Double
Get-Random
возвращает целое число или число с плавающей запятой или объект, выбранный случайным образом из отправленной коллекции.
Примечания
Get-Random
задает начальное значение по умолчанию для каждого сеанса на основе системных часов времени при запуске сеанса.
Get-Random
не всегда возвращает тот же тип данных, что и входное значение. В следующей таблице показан тип выходных данных для каждого из числовых типов входных данных.
Тип входных данных | Тип выходных данных |
---|---|
SByte | Double |
Byte | Double |
Int16 | Double |
UInt16 | Double |
Int32 | Int32 |
UInt32 | Double |
Int64 | Int64 |
UInt64 | Double |
Double | Double |
Single | Double |
Начиная с Windows PowerShell 3.0, Get-Random
поддерживает 64-разрядные целые числа. В Windows PowerShell 2.0 все значения приведение к System.Int32.