Get-Random
Получает случайное число или случайным образом выбирает объекты из коллекции.
Синтаксис
Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>] [<CommonParameters>]
Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>] [<CommonParameters>]
Описание
Командлет Get-Random получает выбранное случайным образом число. Если передать командлету Get-Random коллекцию объектов, он вернет один или несколько выбранных случайным образом объектов этой коллекции.
Без параметров или входного значения команда Get-Random возвращает случайное 32-битное целое число без знака от 0 до значения Int32.MaxValue (0x7FFFFFFF, 2 147 483 647).
С помощью параметров командлета Get-Random можно задать начальное число, минимальное и максимальное значения, а также количество объектов, возвращаемых из переданной коллекции.
Параметры
-Count <int>
Определяет количество возвращаемых объектов. По умолчанию используется значение 1. Если значение Count превышает число объектов в коллекции, командлет Get-Random возвращает все объекты в случайном порядке.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
1 |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-InputObject <Object[]>
Задает коллекцию объектов. Командлет Get-Random получает случайным образом выбранные объекты этой коллекции в случайном порядке. Введите объекты, переменную, содержащую объекты, либо получающую их команду или выражение. Кроме того, коллекцию объектов можно передать командлету Get-Random по конвейеру.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue) |
Принимать подстановочные знаки? |
false |
-Maximum <Object>
Задает максимальное значение случайного числа. Командлет Get-Random возвращает значение, не превышающее максимальное. Введите 32-битное целое число или число с плавающей запятой двойной точности или объект, который можно преобразовать в целое число или число двойной точности, например числовую строку ("100"). Значение Maximum должно быть больше (не равно) значению Minimum.
Если значение Maximum или Minimum является числом с плавающей запятой, командлет Get-Random возвращает случайное число с плавающей запятой.
Если значение Minimum является числом с плавающей запятой двойной точности, значение Maximum по умолчанию равно Double.MaxValue. В противном случае по умолчанию используется значение Int32.MaxValue (2 147 483 647 или 0x7FFFFFFF).
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
Int32.MaxValue |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Minimum <Object>
Задает минимальное значение случайного числа. Введите 32-битное целое число или число с плавающей запятой двойной точности или объект, который можно преобразовать в целое число или число двойной точности, например числовую строку ("100"). Значение по умолчанию — 0 (нуль).
Значение Minimum не должно превышать значения Maximum. Если значение Maximum или Minimum является числом с плавающей запятой, командлет Get-Random возвращает случайное число с плавающей запятой.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
0 |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-SetSeed <int>
Задает начальное значение для генератора случайных чисел. Это начальное значение будет использоваться для текущей команды и для всех последующих команд Get-Random в текущем сеансе до установки нового значения SetSeed или завершения сеанса. Невозможно вернуть начальное значение к своему значению по умолчанию, получаемому на основании показаний часов.
Параметр SetSeed является необязательным. По умолчанию командлет Get-Random использует для получения начального значения системные часы. Поскольку при задании значения SetSeed результат выполнения команды не является строго случайным, этот параметр обычно используют в случаях, когда требуется воспроизвести определенную ситуацию, например при отладке или анализе скриптов, включающих команды Get-Random.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
Системные часы |
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.Object Командлету Get-Random можно передать один или несколько объектов по конвейеру. Командлет Get-Random случайным образом выбирает значения из переданных по конвейеру объектов. |
Выходные данные |
System.Object Командлет Get-Random возвращает целое число или число с плавающей запятой или объект, случайным образом выбранный из переданной коллекции. |
Примечания
Командлет Get-Random устанавливает начальное значение для каждого сеанса на основании показаний системных часов в момент запуска сеанса.
Пример 1
C:\PS>get-random
3951433
Описание
-----------
Эта команда получает случайное целое значение в интервале от 0 (нуля) до значения Int32.MaxValue.
Пример 2
C:\PS>get-random -maximum 100
47
Описание
-----------
Эта команда получает случайное целое значение в интервале от 0 (нуля) до 99.
Пример 3
C:\PS>get-random -minimum -100 -maximum 100
-56
Описание
-----------
Эта команда получает случайное целое значение в интервале от -100 до 99.
Пример 4
C:\PS>get-random -min 10.7 -max 20.93
18.08467273887
Описание
-----------
Эта команда получает случайное число с плавающей запятой, больше или равное 10,7 и меньше 20,92.
Пример 5
C:\PS>get-random -input 1, 2, 3, 5, 8, 13
8
Описание
-----------
Эта команда получает случайным образом выбранное число из заданного массива.
Пример 6
C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count 3
3
1
13
Описание
-----------
Эта команда получает три случайным образом выбранных числа из массива в случайном порядке.
Пример 7
C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count ([int]::MaxValue)
2
3
5
1
8
13
Описание
-----------
Эта команда возвращает все элементы коллекции в случайном порядке. Значение параметра Count равно статическому свойству MaxValue целочисленного массива.
Чтобы вернуть всю коллекцию в случайном порядке, введите любое число, превышающее количество элементов в коллекции или равное ему.
Пример 8
C:\PS>get-random -input "red", "yellow", "blue"
yellow
Описание
-----------
Эта команда возвращает случайное значение из коллекции, элементы которой не являются числами.
Пример 9
C:\PS>get-process | get-random
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
144 4 2080 488 36 0.48 3164 wmiprvse
Описание
-----------
Эта команда получает случайным образом выбранный процесс из коллекции запущенных на компьютере процессов.
Пример 10
C:\PS>get-content servers.txt | get-random -count (get-content servers.txt).count | foreach {invoke-expression -computer $_ -command 'get-process powershell'}
Описание
-----------
Эта команда в случайном порядке выполняет команду для нескольких удаленных компьютеров.
Пример 11
C:\PS>get-random -max 100 -setseed 23
# Commands with the default seed are pseudorandom
PS C:\ps-test> get-random -max 100
59
PS C:\ps-test> get-random -max 100
65
PS C:\ps-test> get-random -max 100
21
# Commands with the same seed are not random
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100 -setseed 23
74
# SetSeed results in a repeatable series
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46
PS C:\ps-test> get-random -max 100 -setseed 23
74
PS C:\ps-test> get-random -max 100
56
PS C:\ps-test> get-random -max 100
84
PS C:\ps-test> get-random -max 100
46
Описание
-----------
В этом примере показан результат применения параметра SetSeed. Поскольку при задании значения SetSeed результат выполнения команды не является случайным, этот параметр обычно используют в случаях, когда требуется воспроизвести определенную ситуацию, например при отладке или анализе скриптов.
Пример 12
C:\PS>$files = dir -path c:\* -recurse
C:\PS> $sample = $files | get-random -count 50
Описание
-----------
Эти команды получают случайным образом выбранный набор из 50 файлов на диске C: локального компьютера.
Пример 13
C:\PS>get-random 10001
7600
Описание
-----------
Эта команда получает случайное целое число меньше 10001. Поскольку параметр Maximum имеет позицию 1, имя этого параметра можно опустить, если значение относится к первому или единственному не указанному параметру в команде.