Partilhar via


Get-Random

Obtém um número aleatório ou seleciona objetos aleatoriamente de uma coleção.

Sintaxe

RandomNumberParameterSet (Predefinição)

Get-Random
    [[-Maximum] <Object>]
    [-SetSeed <Int32>]
    [-Minimum <Object>]
    [<CommonParameters>]

RandomListItemParameterSet

Get-Random
    [-InputObject] <Object[]>
    [-SetSeed <Int32>]
    [-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, ela obterá um ou mais objetos selecionados aleatoriamente da coleção.

Sem parâmetros ou entrada, um comando Get-Random retorna um inteiro não assinado 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

Este comando obtém um inteiro aleatório entre 0 (zero) e Int32.MaxValue.

Get-Random
3951433

Exemplo 2: Obter um número 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 aleatório de vírgula flutuante

Este comando obtém um número aleatório de vírgula flutuante 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

Este 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

Este 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

Este comando retorna toda a coleção em ordem aleatória.

O valor do parâmetro Count é o MaxValue propriedade estática 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 aleatório não numérico

Este 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 do uso do SetSeed parâmetro.

Como SetSeed produz um 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 ficheiros aleatórios

Esses comandos obtêm uma amostra selecionada aleatoriamente de 50 arquivos da unidade de C: do computador local.

$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50

Exemplo 11: Rolar dados justos

Este exemplo rola um dado justo 1200 vezes e conta os resultados. O primeiro comando, For-EachObject repete a chamada para Get-Random a partir dos números canalizados (1-6). Os resultados são agrupados pelo 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.

Propriedades dos parâmetros

Tipo:Int32
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

RandomListItemParameterSet
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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.

Propriedades dos parâmetros

Tipo:

Object[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

RandomListItemParameterSet
Position:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 possa ser convertido em inteiro ou duplo, como uma cadeia 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 vírgula flutuante, Get-Random devolve um número de vírgula flutuante selecionado aleatoriamente.

Em um computador de 64 bits, se o valor de Minimum for um inteiro de 32 bits, o valor padrão de Maximum será Int32.MaxValue.

Se o valor de Minimum for um double (um número de vírgula flutuante), o valor padrão de Maximum será Double.MaxValue. Caso contrário, o valor padrão é Int32.MaxValue.

Propriedades dos parâmetros

Tipo:Object
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

RandomNumberParameterSet
Position:0
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 possa ser convertido em inteiro ou duplo, como uma cadeia 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 vírgula flutuante, Get-Random devolve um número de vírgula flutuante selecionado aleatoriamente.

Propriedades dos parâmetros

Tipo:Object
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

RandomNumberParameterSet
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-SetSeed

Especifica um valor seed para o gerador de números aleatórios. Esse valor seed é 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. Não é possível redefinir a semente para seu valor padrão.

O parâmetro SetSeed não é necessário. Por padrão, usa o método RandomNumberGenerator() para gerar um valor semente. Como SetSeed resulta em comportamento não aleatório, ele geralmente é usado apenas ao tentar reproduzir comportamentos, como ao depurar ou analisar um script que inclui comandos Get-Random.

Propriedades dos parâmetros

Tipo:Int32
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

Object

Você pode canalizar um ou mais objetos. Get-Random seleciona valores aleatoriamente a partir dos objetos canalizados.

Saídas

System.Int32, System.Int64, System.Double

Get-Random retorna um número inteiro ou de vírgula flutuante ou um objeto selecionado aleatoriamente de uma coleção enviada.

Notas

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 oferece suporte a inteiros de 64 bits. No Windows PowerShell 2.0, todos os valores são convertidos para System.Int32.