Get-Random
Obtém um número aleatório ou seleciona objetos aleatoriamente de uma coleção.
Sintaxe
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Description
O cmdlet Get-Random
obtém um número selecionado aleatoriamente. Se você enviar uma coleção de objetos para Get-Random
, ele obterá um ou mais objetos selecionados aleatoriamente da coleção.
Sem parâmetros ou entrada, um comando Get-Random
retorna um inteiro sem sinal de 32 bits selecionado aleatoriamente entre 0 (zero) e Int32.MaxValue (0x7FFFFFFF
, 2,147,483,647
).
Você pode usar os parâmetros de Get-Random
para especificar um número de semente, valores mínimos e máximos e o número de objetos retornados de uma coleção enviada.
Exemplos
Exemplo 1: Obter um inteiro aleatório
Esse comando obtém um inteiro aleatório entre 0 (zero) e Int32.MaxValue.
Get-Random
3951433
Exemplo 2: Obter um inteiro aleatório entre 0 e 99
Get-Random -Maximum 100
47
Exemplo 3: Obter um inteiro aleatório entre -100 e 99
Get-Random -Minimum -100 -Maximum 100
56
Exemplo 4: Obter um número de ponto flutuante aleatório
Esse comando obtém um número de ponto flutuante aleatório maior ou igual a 10,7 e menor que 20,92.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Exemplo 5: Obter um inteiro aleatório de uma matriz
Esse comando obtém um número selecionado aleatoriamente da matriz especificada.
1, 2, 3, 5, 8, 13 | Get-Random
8
Exemplo 6: Obter vários inteiros aleatórios de uma matriz
Esse comando obtém três números selecionados aleatoriamente em ordem aleatória de uma matriz.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Exemplo 7: randomizar uma coleção inteira
Esse comando retorna toda a coleção em ordem aleatória.
O valor do parâmetro Count é a propriedade estática MaxValue de inteiros.
Para retornar uma coleção inteira em ordem aleatória, insira qualquer número maior ou igual ao número de objetos na coleção.
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
2
3
5
1
8
13
Exemplo 8: Obter um valor não numérico aleatório
Esse comando retorna um valor aleatório de uma coleção não numérica.
"red", "yellow", "blue" | Get-Random
yellow
Exemplo 9: Usar o parâmetro SetSeed
Este exemplo mostra o efeito de usar o parâmetro SetSeed.
Como SetSeed produz comportamento não aleatório, ele normalmente é usado apenas para reproduzir resultados, como ao depurar ou analisar um 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
Exemplo 10: Obter arquivos aleatórios
Esses comandos obtêm um exemplo selecionado aleatoriamente de 50 arquivos da unidade C:
do computador local.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Exemplo 11: Rolar dados justos
Este exemplo acumula uma morte justa 1200 vezes e conta os resultados. O primeiro comando, For-EachObject
repete a chamada para Get-Random
dos números canalizados (1-6). Os resultados são agrupados por seu valor com Group-Object
e formatados como uma tabela com 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 o número de objetos aleatórios ou números a serem retornados. O padrão é 1.
Quando usado com InputObject
, se o valor de Count exceder o número de objetos na coleção, Get-Random
retornará todos os objetos em ordem aleatória.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InputObject
Especifica uma coleção de objetos.
Get-Random
obtém objetos selecionados aleatoriamente em ordem aleatória da coleção até o número especificado por Count. Insira os objetos, uma variável que contém os objetos ou um comando ou expressão que obtém os objetos. Você também pode canalizar uma coleção de objetos para Get-Random
.
Tipo: | Object[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Maximum
Especifica um valor máximo para o número aleatório.
Get-Random
retorna um valor menor que o máximo (não igual). Insira um inteiro, um número de ponto flutuante de precisão dupla ou um objeto que pode ser convertido em um inteiro ou duplo, como uma cadeia de caracteres numérica ("100").
O valor de Máximo deve ser maior que (não igual a) o valor de Mínimo. Se o valor de Máximo ou Mínimo for um número de ponto flutuante, Get-Random
retornará um número de ponto flutuante selecionado aleatoriamente.
Em um computador de 64 bits, se o valor de Mínimo for um inteiro de 32 bits, o valor padrão de Máximo será Int32.MaxValue.
Se o valor de Mínimo for um duplo (um número de ponto flutuante), o valor padrão de Máximo será Double.MaxValue. Caso contrário, o valor padrão será Int32.MaxValue.
Tipo: | Object |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Minimum
Especifica um valor mínimo para o número aleatório. Insira um inteiro, um número de ponto flutuante de precisão dupla ou um objeto que pode ser convertido em um inteiro ou duplo, como uma cadeia de caracteres numérica ("100"). O valor padrão é 0 (zero).
O valor de Mínimo deve ser menor que (não igual a) o valor de Máximo. Se o valor de Máximo ou Mínimo for um número de ponto flutuante, Get-Random
retornará um número de ponto flutuante selecionado aleatoriamente.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-SetSeed
Especifica um valor de semente para o gerador de número aleatório. Esse valor de semente é usado para o comando atual e para todos os comandos Get-Random
subsequentes na sessão atual até que você use SetSeed novamente ou feche a sessão. Você não pode redefinir a semente para seu valor padrão.
O parâmetro SetSeed não é necessário. Por padrão, Get-Random
.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Você pode canalizar um ou mais objetos.
Get-Random
seleciona valores aleatoriamente dos objetos canalizados.
Saídas
System.Int32, System.Int64, System.Double
Get-Random
retorna um número inteiro ou de ponto flutuante ou um objeto selecionado aleatoriamente de uma coleção enviada.
Observações
Get-Random
define uma semente padrão para cada sessão com base no relógio de tempo do sistema quando a sessão é iniciada.
A partir do Windows PowerShell 3.0, Get-Random
dá suporte a inteiros de 64 bits. No Windows PowerShell 2.0, todos os valores são convertidos em System.Int32.