obtener un numero aleatorio con powershell

Esta entrada tiene dos objetivos, el primero aprender a obtener un número aleatorio con powershell y el segundo advertiros del funcionamiento real de la función que nos ayuda a obtenerlo.

La función que ofrece powershell para obtener un resultado aleatorio (antes he dicho un número, pero realmente no es así, después me explico) es Get-Random.
Esta función acepta principalmente dos parámetros -Maximum y -Minimum. Os pongo algunos ejemplos de uso de esta función:

Get-Random 10
Este comando obtendrá un número entre 0 y 9

Get-Random 10 -Minimum 3
Este comando obtendrá un número entre 3 y 9

5 | Get-Random
Este comando obtendrá un número entre 0 y 4

Como podéis ver en los ejemplos el valor máximo que le indicamos a la función no será incluido en el cálculo del número aleatorio (esto es lo que quería mostraros). De esta forma, para evitar que nos confundamos, podemos tomar dos alternativas:

1) Usar la función indicando de manera visual el número que queremos usar de límite:

Get-Random (10+1) -Minimum 2


De esta forma visualmente vemos que estamos obteniendo un número entre 2 y 10.

2) Definir una función Get-RealRandom que obtenga un número aleatorio teniendo en cuenta el valor que digamos como valor máximo en el cálculo y se usaría así:

Get-RealRandom -Maximum 10 -Minimum 2


Con esta función estamos obteniendo un número entre 2 y 10.

Por último, como comenté al principio del post, en realidad Get-Random no sólo obtiene un número aleatorio, sino que también puede obtener un objeto aleatorio de una lista de objetos. Es decir, que podemos hacer cosas como lo siguiente:

"pepe", "luis", "angel" | Get-Random
Este comando devolverá uno de los 3 strings pasados por el pipeline

"pepe", 3, "angel" | Get-Random
Este comando va un poco más lejos y devolverá uno de los elementos pasados por el pipeline, en este caso son 2 strings y un integer

Get-Process | Get-Random
Este comando devolverá un proceso del sistema de manera aleatoria

Como véis la potencia que ofrece está función es realmente interesante y puede ser muy útil.

Si queréis podéis echar un ojo al código de la función que he definido como Get-RealRandom.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *