Get-Random
Obtém um número aleatório ou seleciona objetos aleatoriamente de uma coleção.
Sintaxe
Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>] [<CommonParameters>]
Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>] [<CommonParameters>]
Descrição
O cmdlet Get-Random obtém um número aleatoriamente selecionado. Se você enviar uma coleção de objetos para Get-Random, obterá um ou mais objetos selecionado aleatoriamente da coleção.
Sem parâmetros ou entrada, um comando Get-Random retorna um inteiro sem sinal de 32 bits aleatoriamente selecionado 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ínimo e máximo e o número de objetos retornados de uma coleção enviada.
Parâmetros
-Count <int>
Determina quantos objetos são retornados. O padrão é 1. Se o valor de Count exceder o número de objetos na coleção, Get-Random retornará todos os objetos em ordem aleatória.
Necessário? |
false |
Posição? |
named |
Valor padrão |
1 |
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-InputObject <Object[]>
Especifica uma coleção de objetos. Get-Random obtém objetos selecionados aleatoriamente da coleção. Digite os objetos, uma variável que contenha os objetos ou um comando ou expressão que obtenha os objetos. Também é possível enviar uma coleção de objetos para Get-Random.
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByValue) |
Aceitar caracteres curinga? |
false |
-Maximum <Object>
Especifica um valor máximo para o número aleatório. Get-Random retorna um valor inferior ao máximo (não igual). Digite um inteiro de 32 bits ou um número de ponto flutuante de precisão dupla ou um objeto que pode ser convertido em um inteiro ou ser dobrado, como uma cadeia numérica ("100"). O valor de Maximum deve ser superior (e não igual) ao valor de Minimum.
Se o valor de Maximum ou Minimum for um número de ponto flutuante, Get-Random devolverá um número de ponto flutuante aleatoriamente selecionado.
Se o valor de Minimum for um dobro (um número de ponto flutuante), o valor padrão de Maximum será Double.MaxValue. Caso contrário, o valor padrão é Int32.MaxValue (2,147,483,647 ou 0x7FFFFFFF).
Necessário? |
false |
Posição? |
1 |
Valor padrão |
Int32.MaxValue |
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Minimum <Object>
Especifica um valor mínimo para o número aleatório. Digite um inteiro de 32 bits ou um número de ponto flutuante de precisão dupla ou um objeto que pode ser convertido em um inteiro ou ser dobrado, como uma cadeia numérica ("100"). O valor padrão é 0 (zero).
O valor de Minimum deve ser inferior (e não igual) ao valor de Maximum. Se o valor de Maximum ou Minimum for um número de ponto flutuante, Get-Random devolverá um número de ponto flutuante aleatoriamente selecionado.
Necessário? |
false |
Posição? |
named |
Valor padrão |
0 |
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-SetSeed <int>
Especifica um valor de semente para o gerador de número aleatório. Este valor de semente é usado para o comando atual e para todos os comandos Get-Random subsequentes da sessão atual até que você use SetSeed novamente ou feche a sessão. Você não pode reiniciar a semente com seu valor padrão fundado em relógio.
O parâmetro SetSeed não é necessário. Por padrão, Get-Random usa o clock do sistema para gerar um valor de semente. Como SetSeed resulta em comportamento não aleatório, é usado normalmente só ao tentar reproduzir comportamento, como durante a depuração ou análise de um script que inclui comandos Get-Random.
Necessário? |
false |
Posição? |
named |
Valor padrão |
Clock do sistema |
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
System.Object Você pode canalizar um ou mais objetos para Get-Random. Get-Random seleciona valores aleatoriamente entre os objetos canalizados. |
Saídas |
System.Object Objects. Get-Random retorna um inteiro ou um número de ponto flutuante ou um objeto selecionado aleatoriamente de uma coleção enviada. |
Observações
Get-Random define uma semente padrão durante cada sessão fundada no clock de hora do sistema quando a sessão é iniciada.
Exemplo 1
C:\PS>get-random
3951433
Descrição
-----------
Esse comando obtém um inteiro aleatório entre 0 (zero) e Int32.MaxValue.
Exemplo 2
C:\PS>get-random -maximum 100
47
Descrição
-----------
Esse comando obtém um inteiro aleatório entre 0 (zero) e 99.
Exemplo 3
C:\PS>get-random -minimum -100 -maximum 100
-56
Descrição
-----------
Este comando obtém um inteiro aleatório entre -100 e 99.
Exemplo 4
C:\PS>get-random -min 10.7 -max 20.93
18.08467273887
Descrição
-----------
Este comando obtém um número de ponto flutuante aleatório maior ou igual a 10,7 e menor que 20,92.
Exemplo 5
C:\PS>get-random -input 1, 2, 3, 5, 8, 13
8
Descrição
-----------
Este comando obtém um número aleatoriamente selecionado da matriz especificada.
Exemplo 6
C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count 3
3
1
13
Descrição
-----------
Este comando obtém três números selecionados aleatoriamente da matriz.
Exemplo 7
C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count ([int]::MaxValue)
2
3
5
1
8
13
Descrição
-----------
Este comando retorna a coleção inteira 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, digite qualquer número maior ou igual ao número de objetos da coleção.
Exemplo 8
C:\PS>get-random -input "red", "yellow", "blue"
yellow
Descrição
-----------
Este comando retorna um valor aleatório de uma coleção não numérica.
Exemplo 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
Descrição
-----------
Este comando obtém um processo selecionado aleatoriamente da coleção de processos no computador.
Exemplo 10
C:\PS>get-content servers.txt | get-random -count (get-content servers.txt).count | foreach {invoke-expression -computer $_ -command 'get-process powershell'}
Descrição
-----------
Este comando executa um comando em uma série de computadores remotos em ordem aleatória.
Exemplo 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
Descrição
-----------
Esse exemplo mostra o efeito do uso do parâmetro SetSeed. Como SetSeed produz um comportamento não aleatório, é usado normalmente para reproduzir resultados, como durante a depuração ou análise de um script.
Exemplo 12
C:\PS>$files = dir -path c:\* -recurse
C:\PS> $sample = $files | get-random -count 50
Descrição
-----------
Esses comandos obtêm um exemplo selecionado aleatoriamente de 50 arquivos da unidade C: do computador local.
Exemplo 13
C:\PS>get-random 10001
7600
Descrição
-----------
Este comando obtém um inteiro aleatório inferior a 10001. Como o parâmetro Maximum tem posição 1, você pode omitir o nome do parâmetro quando o valor é o primeiro ou único parâmetro sem nome no comando.