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.

Если значение InputObjectCount превышает число объектов в коллекции, 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

Входные данные

Object

Можно передать один или несколько объектов. 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.