Get-Random
Obtiene un número aleatorio o selecciona objetos aleatoriamente de una colección.
Sintaxis
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Description
El cmdlet Get-Random
obtiene un número seleccionado aleatoriamente. Si envía una colección de objetos a Get-Random
, obtiene uno o varios objetos seleccionados aleatoriamente de la colección.
Sin parámetros o entrada, un comando Get-Random
devuelve un entero de 32 bits sin signo seleccionado aleatoriamente entre 0 (cero) y Int32.MaxValue (0x7FFFFFFF
, 2,147,483,647
).
Puede usar los parámetros de Get-Random
para especificar un número de inicialización, valores mínimo y máximo, y el número de objetos devueltos de una colección enviada.
Ejemplos
Ejemplo 1: Obtener un entero aleatorio
Este comando obtiene un entero aleatorio entre 0 (cero) y Int32.MaxValue.
Get-Random
3951433
Ejemplo 2: Obtener un entero aleatorio entre 0 y 99
Get-Random -Maximum 100
47
Ejemplo 3: Obtener un entero aleatorio entre -100 y 99
Get-Random -Minimum -100 -Maximum 100
56
Ejemplo 4: Obtener un número de punto flotante aleatorio
Este comando obtiene un número de punto flotante aleatorio mayor o igual que 10,7 y menor que 20,92.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Ejemplo 5: Obtener un entero aleatorio de una matriz
Este comando obtiene un número seleccionado aleatoriamente de la matriz especificada.
1, 2, 3, 5, 8, 13 | Get-Random
8
Ejemplo 6: Obtener varios enteros aleatorios de una matriz
Este comando obtiene tres números seleccionados aleatoriamente en orden aleatorio de una matriz.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Ejemplo 7: Aleatorizar una colección completa
Este comando devuelve toda la colección en orden aleatorio.
El valor del parámetro count
Para devolver una colección completa en orden aleatorio, escriba cualquier número mayor o igual que el número de objetos de la colección.
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
2
3
5
1
8
13
Ejemplo 8: Obtención de un valor no numérico aleatorio
Este comando devuelve un valor aleatorio de una colección no numérica.
"red", "yellow", "blue" | Get-Random
yellow
Ejemplo 9: Uso del parámetro SetSeed
En este ejemplo se muestra el efecto de usar el parámetro SetSeed.
Dado que SetSeed produce un comportamiento no aleatorio, normalmente se usa solo para reproducir resultados, como al depurar o analizar un script.
# 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
Ejemplo 10: Obtener archivos aleatorios
Estos comandos obtienen un ejemplo seleccionado aleatoriamente de 50 archivos de la unidad C:
del equipo local.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Ejemplo 11: Tirar dados justos
En este ejemplo se implementa una serie de die die 1200 veces y se cuentan los resultados. El primer comando, For-EachObject
repite la llamada a Get-Random
desde la canalización en números (1-6). Los resultados se agrupan por su valor con Group-Object
y tienen el formato de una tabla con 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
Parámetros
-Count
Especifica el número de objetos o números aleatorios que se van a devolver. El valor predeterminado es 1.
Cuando se usa con InputObject
, si el valor de Count supera el número de objetos de la colección, Get-Random
devuelve todos los objetos en orden aleatorio.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-InputObject
Especifica una colección de objetos .
Get-Random
obtiene objetos seleccionados aleatoriamente en orden aleatorio de la colección hasta el número especificado por Count. Escriba los objetos , una variable que contiene los objetos o un comando o expresión que obtiene los objetos. También puede canalizar una colección de objetos para Get-Random
.
Tipo: | Object[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Maximum
Especifica un valor máximo para el número aleatorio.
Get-Random
devuelve un valor menor que el máximo (no igual). Escriba un entero, un número de punto flotante de precisión doble o un objeto que se pueda convertir en un entero o double, como una cadena numérica ("100").
El valor de Máximo debe ser mayor que (no igual a) el valor de Mínimo. Si el valor de Maximum o Minimum es un número de punto flotante, Get-Random
devuelve un número de punto flotante seleccionado aleatoriamente.
En un equipo de 64 bits, si el valor de Mínimo es un entero de 32 bits, el valor predeterminado de Maximum es Int32.MaxValue.
Si el valor de Mínimo es un doble (un número de punto flotante), el valor predeterminado de Máximo es Double.MaxValue. De lo contrario, el valor predeterminado es Int32.MaxValue.
Tipo: | Object |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Minimum
Especifica un valor mínimo para el número aleatorio. Escriba un entero, un número de punto flotante de precisión doble o un objeto que se pueda convertir en un entero o double, como una cadena numérica ("100"). El valor predeterminado es 0 (cero).
El valor de Mínimo debe ser menor que (no igual que) el valor de Máximo. Si el valor de Maximum o Minimum es un número de punto flotante, Get-Random
devuelve un número de punto flotante seleccionado aleatoriamente.
Tipo: | Object |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-SetSeed
Especifica un valor de inicialización para el generador de números aleatorios. Este valor de inicialización se usa para el comando actual y para todos los comandos de Get-Random
posteriores de la sesión actual hasta que use SetSeed de nuevo o cierre la sesión. No se puede restablecer la inicialización a su valor predeterminado.
El parámetro SetSeed no es necesario. De forma predeterminada, Get-Random
.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar uno o varios objetos.
Get-Random
selecciona los valores aleatoriamente de los objetos canalizado.
Salidas
System.Int32, System.Int64, System.Double
Get-Random
devuelve un número entero o de punto flotante, o un objeto seleccionado aleatoriamente de una colección enviada.
Notas
Get-Random
establece una inicialización predeterminada para cada sesión en función del reloj de hora del sistema cuando se inicia la sesión.
A partir de Windows PowerShell 3.0, Get-Random
admite enteros de 64 bits. En Windows PowerShell 2.0, todos los valores se convierten en System.Int32.