Get-Random
Obtém um número aleatório ou seleciona objetos aleatoriamente de uma coleção.
Syntax
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Description
O Get-Random
cmdlet obtém um número selecionado aleatoriamente. Se você enviar uma coleção de objetos para Get-Random
o , ele obterá um ou mais objetos selecionados aleatoriamente da coleção.
Sem parâmetros ou entrada, um Get-Random
comando retorna um inteiro não assinado de 32 bits selecionado aleatoriamente entre 0 (zero) e [int32]::MaxValue
.
Você pode usar os parâmetros de Get-Random
para especificar os valores mínimo e máximo, o número de objetos retornados de uma coleção ou um número de propagação.
Cuidado
Get-Random
não garante aleatoriedade criptograficamente segura. O valor de propagação é usado para o comando atual e para todos os comandos subsequentes Get-Random
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.
A definição deliberada da semente resulta em um comportamento não aleatório e repetível. Ele só deve ser usado ao tentar reproduzir comportamento, como ao depurar ou analisar um script que inclui Get-Random
comandos. Lembre-se de que o valor de propagação pode ser definido por outro código na mesma sessão, como um módulo importado.
O PowerShell 7.4 inclui Get-SecureRandom
o , que garante aleatoriedade criptograficamente segura.
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 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,93.
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 que ou igual ao número de objetos da 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 do uso do parâmetro SetSeed .
Como o 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
32
25
93
95
# Commands with the same seed aren't random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
32
32
32
# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100
32
25
93
95
Exemplo 10: Obter arquivos aleatórios
Esses comandos obtêm uma amostra selecionada aleatoriamente de 50 arquivos da C:
unidade do computador local.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Exemplo 11: Roll fair dice
Este exemplo rola um dado justo 1200 vezes e conta os resultados. O primeiro comando, ForEach-Object
repete a chamada para Get-Random
a partir do canalizado em números (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 a serem retornados. O padrão é 1.
Quando usado com InputObject
a contenção de uma coleção:
- Cada item selecionado aleatoriamente é retornado apenas uma vez.
- Se o valor de Count exceder o número de objetos na coleção, todos os objetos na coleção serão retornados em ordem aleatória.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 contenha os objetos ou um comando ou expressão que os obtenha. Você também pode canalizar uma coleção de objetos para Get-Random
o .
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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 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 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 ponto flutuante), o valor padrão de Maximum será Double.MaxValue. Caso contrário, o valor padrão será Int32.MaxValue.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 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.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SetSeed
Especifica um valor de semente para o número aleatório. Quando você usa SetSeed, o cmdlet gera números pseudoaleatórios, que não são criptograficamente seguros.
Cuidado
A definição da semente resulta em um comportamento não aleatório. Ele só deve ser usado ao tentar reproduzir comportamento, como ao depurar ou analisar um script que inclui Get-Random
comandos.
Esse valor de propagação é usado para o comando atual e para todos os comandos subsequentes Get-Random
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.
Type: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Você pode canalizar qualquer objeto para esse cmdlet. Ele seleciona valores aleatoriamente dos objetos canalizados.
Saídas
Esse cmdlet retorna um número inteiro ou de ponto flutuante ou um objeto selecionado aleatoriamente de uma coleção enviada.
Observações
Get-Random
nem sempre retorna o mesmo tipo de dados que o valor de entrada. A tabela a seguir mostra o tipo de saída para cada um dos tipos de entrada numéricos.
Tipo de Entrada | Tipo de Saída |
---|---|
SByte | Double |
Byte | Double |
Int16 | Double |
UInt16 | Double |
Int32 | Int32 |
UInt32 | Double |
Int64 | Int64 |
UInt64 | Double |
Double | Double |
Single | Double |
A partir do Windows PowerShell 3.0, Get-Random
oferece suporte a inteiros de 64 bits.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de