Get-Random
Mendapatkan angka acak, atau memilih objek secara acak dari koleksi.
Sintaks
Get-Random
[-SetSeed <Int32>]
[[-Maximum] <Object>]
[-Minimum <Object>]
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Count <Int32>]
[<CommonParameters>]
Get-Random
[-SetSeed <Int32>]
[-InputObject] <Object[]>
[-Shuffle]
[<CommonParameters>]
Deskripsi
Get-Random
Cmdlet mendapatkan angka yang dipilih secara acak. Jika Anda mengirimkan kumpulan objek ke Get-Random
, ia mendapatkan satu atau beberapa objek yang dipilih secara acak dari koleksi.
Tanpa parameter atau input, Get-Random
perintah mengembalikan bilangan bulat yang tidak ditandatangani 32-bit yang dipilih secara acak antara 0 (nol) dan [int32]::MaxValue
.
Anda dapat menggunakan parameter Get-Random
untuk menentukan nilai minimum dan maksimum, jumlah objek yang dikembalikan dari koleksi, atau angka awal.
Perhatian
Get-Random
tidak memastikan keacakan yang aman secara kriptografis. Nilai awal digunakan untuk perintah saat ini dan untuk semua perintah berikutnya Get-Random
dalam sesi saat ini hingga Anda menggunakan SetSeed lagi atau menutup sesi. Anda tidak dapat mengatur ulang seed ke nilai defaultnya.
Sengaja mengatur benih menghasilkan perilaku yang tidak acak dan dapat diulang. Ini hanya boleh digunakan saat mencoba mereproduksi perilaku, seperti saat men-debug atau menganalisis skrip yang menyertakan Get-Random
perintah. Ketahuilah bahwa nilai seed dapat diatur oleh kode lain dalam sesi yang sama, seperti modul yang diimpor.
PowerShell 7.4 mencakup Get-SecureRandom
, yang memastikan keacakan yang aman secara kriptografis.
Contoh
Contoh 1: Mendapatkan bilangan bulat acak
Perintah ini mendapatkan bilangan bulat acak antara 0 (nol) dan Int32.MaxValue.
Get-Random
3951433
Contoh 2: Dapatkan bilangan bulat acak antara 0 dan 99
Get-Random -Maximum 100
47
Contoh 3: Dapatkan bilangan bulat acak antara -100 dan 99
Get-Random -Minimum -100 -Maximum 100
56
Contoh 4: Mendapatkan angka floating-point acak
Perintah ini mendapatkan angka floating-point acak yang lebih besar dari atau sama dengan 10,7 dan kurang dari 20,93.
Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887
Contoh 5: Mendapatkan bilangan bulat acak dari array
Perintah ini mendapatkan angka yang dipilih secara acak dari array yang ditentukan.
1, 2, 3, 5, 8, 13 | Get-Random
8
Contoh 6: Mendapatkan beberapa bilangan bulat acak dari array
Perintah ini mendapatkan tiga angka yang dipilih secara acak dalam urutan acak dari array.
1, 2, 3, 5, 8, 13 | Get-Random -Count 3
3
1
13
Contoh 7: Mengacak seluruh koleksi
Mulai dari PowerShell 7.1, Anda dapat menggunakan parameter Acak untuk mengembalikan seluruh koleksi dalam urutan acak.
1, 2, 3, 5, 8, 13 | Get-Random -Shuffle
2
3
5
1
8
13
Contoh 8: Dapatkan nilai non-numerik acak
Perintah ini mengembalikan nilai acak dari koleksi non-numerik.
"red", "yellow", "blue" | Get-Random
yellow
Contoh 9: Gunakan parameter SetSeed
Contoh ini menunjukkan efek penggunaan parameter SetSeed .
Karena SetSeed menghasilkan perilaku non-acak, biasanya hanya digunakan untuk mereproduksi hasil, seperti saat men-debug atau menganalisis skrip.
# 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
Contoh 10: Mendapatkan file acak
Perintah ini mendapatkan sampel 50 file yang dipilih secara acak dari C:
drive komputer lokal.
$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50
Contoh 11: Gulung dadu adil
Contoh ini menggulung mati adil 1200 kali dan menghitung hasilnya. Perintah pertama, ForEach-Object
mengulangi panggilan ke Get-Random
dari yang disalurkan dalam angka (1-6). Hasilnya dikelompokkan menurut nilainya dengan Group-Object
dan diformat sebagai tabel dengan 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
Contoh 12: Gunakan parameter Hitung
Sekarang Anda dapat menggunakan parameter Hitung tanpa objek pemisah ke Get-Random
.
Contoh berikut mendapatkan tiga angka acak kurang dari 10.
Get-Random -Count 3 -Maximum 10
9
0
8
Contoh 13: Gunakan parameter InputObject dengan string kosong atau $null
Dalam contoh ini, parameter InputObject menentukan array yang berisi string kosong (''
) dan $null
.
Get-Random -InputObject @('a','',$null)
Get-Random
mengembalikan , a
string kosong, atau $null
. Sengatan kosong ditampilkan sebagai baris kosong dan $null
kembali ke perintah PowerShell.
Parameter
-Count
Menentukan jumlah objek acak yang akan dikembalikan. Defaultnya adalah 1.
Saat digunakan dengan InputObject
berisi koleksi:
- Setiap item yang dipilih secara acak dikembalikan hanya sekali.
- Jika nilai Hitungan melebihi jumlah objek dalam koleksi, semua objek dalam koleksi dikembalikan dalam urutan acak.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Menentukan kumpulan objek. Get-Random
mendapatkan objek yang dipilih secara acak dalam urutan acak dari koleksi hingga angka yang ditentukan oleh Hitungan. Masukkan objek, variabel yang berisi objek, atau perintah atau ekspresi yang mendapatkan objek. Anda juga dapat menyalurkan kumpulan objek ke Get-Random
.
Dimulai di PowerShell 7, parameter InputObject menerima array yang dapat berisi string kosong atau $null
. Array dapat dikirim ke alur atau sebagai nilai parameter InputObject .
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Maximum
Menentukan nilai maksimum untuk angka acak. Get-Random
mengembalikan nilai yang kurang dari maksimum (tidak sama dengan). Masukkan bilangan bulat, angka floating-point presisi ganda, atau objek yang dapat dikonversi menjadi bilangan bulat atau ganda, seperti string numerik ("100").
Nilai Maksimum harus lebih besar dari (tidak sama dengan) nilai Minimum. Jika nilai Maksimum atau Minimum adalah angka floating-point, Get-Random
mengembalikan angka floating-point yang dipilih secara acak.
Pada komputer 64-bit, jika nilai Minimum adalah bilangan bulat 32-bit, nilai default Maksimum adalah Int32.MaxValue.
Jika nilai Minimum adalah ganda (angka floating-point), nilai default Maksimum adalah Double.MaxValue. Jika tidak, nilai defaultnya adalah Int32.MaxValue.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Minimum
Menentukan nilai minimum untuk angka acak. Masukkan bilangan bulat, angka floating-point presisi ganda, atau objek yang dapat dikonversi menjadi bilangan bulat atau ganda, seperti string numerik ("100"). Nilai defaultnya adalah 0 (nol).
Nilai Minimum harus kurang dari (tidak sama dengan) nilai Maksimum. Jika nilai Maksimum atau Minimum adalah angka floating-point, Get-Random
mengembalikan angka floating-point yang dipilih secara acak.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SetSeed
Menentukan nilai seed untuk generator angka acak. Saat Anda menggunakan SetSeed, cmdlet menghasilkan angka pseudorandom, yang tidak aman secara kriptografis.
Perhatian
Mengatur benih menghasilkan perilaku non-acak. Ini hanya boleh digunakan saat mencoba mereproduksi perilaku, seperti saat men-debug atau menganalisis skrip yang menyertakan Get-Random
perintah.
Nilai awal ini digunakan untuk perintah saat ini dan untuk semua perintah berikutnya Get-Random
dalam sesi saat ini hingga Anda menggunakan SetSeed lagi atau menutup sesi. Anda tidak dapat mengatur ulang seed ke nilai defaultnya.
Type: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Shuffle
Mengembalikan seluruh koleksi dalam urutan acak.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
Anda dapat menyalurkan objek apa pun ke cmdlet ini. Ini memilih nilai secara acak dari objek yang disalurkan.
Output
Cmdlet ini mengembalikan bilangan bulat atau angka floating-point, atau objek yang dipilih secara acak dari koleksi yang dikirimkan.
Catatan
Get-Random
tidak selalu mengembalikan jenis data yang sama dengan nilai input. Tabel berikut menunjukkan jenis output untuk setiap jenis input numerik.
Jenis input | Jenis Output |
---|---|
SByte | Laju |
Byte | Laju |
Int16 | Laju |
UInt16 | Laju |
Int32 | Int32 |
UInt32 | Laju |
Int64 | Int64 |
UInt64 | Laju |
Laju | Laju |
Tunggal | Laju |
Dimulai di Windows PowerShell 3.0, Get-Random
mendukung bilangan bulat 64-bit. Di Windows PowerShell 2.0, semua nilai ditransmisikan ke System.Int32.
Dimulai di PowerShell 7, parameter InputObject di set parameter RandomListItemParameterSet menerima array yang berisi string kosong atau $null
. Di versi PowerShell sebelumnya, hanya parameter Maksimum dalam set parameter RandomNumberParameterSet yang menerima string kosong atau $null
.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk