Get-Random
Ottiene un numero casuale o seleziona oggetti in modo casuale da una raccolta.
Sintassi
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Descrizione
Il Get-Random
cmdlet ottiene un numero selezionato in modo casuale. Se si invia una raccolta di oggetti a Get-Random
, ottiene uno o più oggetti selezionati in modo casuale dall'insieme.
Senza parametri o input, un Get-Random
comando restituisce un intero senza segno a 32 bit selezionato casualmente compreso tra 0 (zero) e Int32.MaxValue (0x7FFFFFFF
, 2,147,483,647
).
È possibile usare i parametri di Get-Random
per specificare un numero di inizializzazione, valori minimi e massimi e il numero di oggetti restituiti da una raccolta inviata.
Esempio
Esempio 1: Ottenere un intero casuale
Questo comando ottiene un intero casuale compreso tra 0 (zero) e Int32.MaxValue.
Get-Random
3951433
Esempio 2: Ottenere un intero casuale compreso tra 0 e 99
Get-Random -Maximum 100
47
Esempio 3: Ottenere un intero casuale compreso tra -100 e 99
Get-Random -Minimum -100 -Maximum 100
56
Esempio 4: Ottenere un numero a virgola mobile casuale
Questo comando ottiene un numero a virgola mobile casuale maggiore o uguale a 10,7 e minore di 20,92.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Esempio 5: Ottenere un intero casuale da una matrice
Questo comando ottiene un numero selezionato in modo casuale dalla matrice specificata.
1, 2, 3, 5, 8, 13 | Get-Random
8
Esempio 6: Ottenere diversi numeri interi casuali da una matrice
Questo comando ottiene tre numeri selezionati in modo casuale in ordine casuale da una matrice.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Esempio 7: Casualizzare un'intera raccolta
Questo comando restituisce l'intera raccolta in ordine casuale.
Il valore del parametro Count è la proprietà statica MaxValue di integer.
Per restituire un'intera raccolta in ordine casuale, immettere un numero qualsiasi maggiore o uguale al numero di oggetti nella raccolta.
1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)
2
3
5
1
8
13
Esempio 8: Ottenere un valore non numerico casuale
Questo comando restituisce un valore casuale da una raccolta non numerica.
"red", "yellow", "blue" | Get-Random
yellow
Esempio 9: Usare il parametro SetSeed
Questo esempio mostra l'effetto dell'uso del parametro SetSeed.
Poiché SetSeed produce un comportamento non casuale, in genere viene usato solo per riprodurre i risultati, ad esempio durante il debug o l'analisi di uno 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
Esempio 10: Ottenere file casuali
Questi comandi ottengono un esempio selezionato casualmente di 50 file dall'unità C:
del computer locale.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Esempio 11: Roll fair dice
Questo esempio esegue il rolling di un numero equo di 1200 volte e conta i risultati. Il primo comando ripete For-EachObject
la chiamata a Get-Random
dalla pipe nei numeri (1-6). I risultati vengono raggruppati in base al valore e Group-Object
formattati come tabella con 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
Parametri
-Count
Specifica il numero di oggetti o numeri casuali da restituire. Il valore predefinito è 1.
Se usato con InputObject
, se il valore di Count supera il numero di oggetti nell'insieme, Get-Random
restituisce tutti gli oggetti in ordine casuale.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Specifica una raccolta di oggetti. Get-Random
ottiene oggetti selezionati in modo casuale in ordine casuale dalla raccolta fino al numero specificato da Count. Immettere gli oggetti, una variabile che contiene gli oggetti oppure un comando o un'espressione che ottiene gli oggetti. È anche possibile eseguire la pipe di una raccolta di oggetti in Get-Random
.
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Maximum
Specifica un valore massimo per il numero casuale. Get-Random
restituisce un valore minore del valore massimo (non uguale). Immettere un intero, un numero a virgola mobile a precisione doppia o un oggetto che può essere convertito in un intero o doppio, ad esempio una stringa numerica ("100").
Il valore di Maximum deve essere superiore (non uguale) al valore di Minimum. Se il valore massimo o minimo è un numero a virgola mobile, Get-Random
restituisce un numero a virgola mobile selezionato in modo casuale.
In un computer a 64 bit, se il valore di Minimum è un intero a 32 bit, il valore predefinito diMaximum è Int32.MaxValue.
Se il valore di Minimum è un doppio (un numero a virgola mobile), il valore predefinito di Maximum è Double.MaxValue. In caso contrario, il valore predefinito è Int32.MaxValue.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Minimum
Specifica un valore minimo per il numero casuale. Immettere un intero, un numero a virgola mobile a precisione doppia o un oggetto che può essere convertito in un intero o doppio, ad esempio una stringa numerica ("100"). Il valore predefinito è 0 (zero).
Il valore di Minimum deve essere inferiore (non uguale) al valore di Maximum. Se il valore massimo o minimo è un numero a virgola mobile, Get-Random
restituisce un numero a virgola mobile selezionato in modo casuale.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SetSeed
Specifica un valore di inizializzazione per il generatore di numeri casuali. Questo valore di inizializzazione viene usato per il comando corrente e per tutti i comandi successivi Get-Random
nella sessione corrente fino a quando non si usa Di nuovo SetSeed o chiudere la sessione. Non è possibile reimpostare il valore predefinito del seeding.
Il parametro SetSeed non è obbligatorio. Per impostazione predefinita, Get-Random
usa il metodo RandomNumberGenerator() per generare un valore di inizializzazione. Poiché SetSeed genera un comportamento non casuale, viene in genere usato solo quando si tenta di riprodurre il comportamento, ad esempio durante il debug o l'analisi di uno script che include Get-Random
comandi.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
È possibile eseguire la pipe di uno o più oggetti. Get-Random
seleziona i valori in modo casuale dagli oggetti con pipe.
Output
System.Int32, System.Int64, System.Double
Get-Random
restituisce un numero intero o a virgola mobile o un oggetto selezionato in modo casuale da una raccolta inviata.
Note
Get-Random
imposta un valore di inizializzazione predefinito per ogni sessione in base all'ora di sistema all'avvio della sessione.
A partire da Windows PowerShell 3.0, Get-Random
supporta interi a 64 bit. In Windows PowerShell 2.0 tutti i valori vengono vuoti in System.Int32.